在github上托管R包时如何排除要下载的文件夹

问题描述 投票:0回答:1

我的包托管在github上,用户可以通过

devtools::install_github
安装它。

现在我使用 pkgdown 生成文档站点,它创建了一个 10M 的文档文件夹。然后我发现

devtools::install_github
总是下载整个主zip球,这变得相当慢。

我尝试通过这些尝试排除 docs 文件夹:

  • .Rbuildignore
    ,原来只是捆绑包,而
    install_github
    正在安装源码包,所以不起作用。
  • 将包放入
    pkg
    文件夹中,将生成的
    docs
    文件夹放入
    pkg
    文件夹中。然而,即使指定了
    subdir = "pkg"
    ,整个主压缩球仍然会被下载。
  • 将开发放在一个分支中,并创建一个没有 docs 文件夹的特殊包分支。合并两个分支,但让包分支排除 docs 文件夹。我尝试 make .gitignore 特定于分支,但它似乎不起作用。 这似乎是不可能的
  • 我最新的尝试是专门为网站创建一个单独的存储库,只需让
    pkgdown
    在该文件夹中创建网站,就像
    build_site(path = "../docsite/docs")
    一样。这应该可以解决问题并且简单干净。唯一的缺陷是网站网址不是通常的模式。

编辑:使用最新版本的

pkgdown
,不再有
path
参数,您需要在站点配置yaml中指定它,这样效果更好(您不需要在每个命令中指定它)。

r devtools
1个回答
0
投票

老问题但仍然相关。解决此问题的一种方法是将

.gitattributes
文件添加到您的存储库,列出您不希望下载的文件夹(作为包的一部分),每个文件夹都具有“export-ignore”属性。

例如,如果您不想将文件夹“foldertoexclude”作为包的一部分下载,则文件

.gitattributes
将包含以下行:

foldertoexclude export-ignore

您可以在该文件夹中放入处理包所需的任何类型的脚本和对象,但它们不属于可下载包的一部分。

警告:这会影响您的存储库作为 tarball 下载的方式。如果有人想要下载您的存储库的副本 – 不是为了安装软件包,而只是为了修改您的项目 – 那么他们下载的 tarball 将不包含“foldertoexclude”文件夹。

© www.soinside.com 2019 - 2024. All rights reserved.