使文件在多个存储库之间保持同步

时间:2018-08-09 16:05:13

标签: r git repository gitlab

我有一个特定的R脚本,可以在几个不同的存储库中使用。我经常更新它,每当执行此操作时,我都必须记住要在存储它的每个其他存储库中对其进行更新,因为我需要所有它们都保持最新。有没有一种方法可以自动执行此操作,以便每当文件的一个副本被更新时,其他所有副本都被更新?

我尝试过/想到的事情:

  • 硬链接:每次执行拉动或分支切换来更改文件时,硬链接都会中断,因为git无法跟踪硬链接元数据。
    • 曾经有一个名为“ git metastore”的工具可能有助于解决此问题,但它似乎处于脱机状态,并且git-cache-meta不会存储inode值来还原硬链接(尽管有一种方法可以对其进行修改,以便可以实现这一点。)
  • 创建库:脚本包含敏感信息,因此它不能位于公共托管的库中,而私人托管的R库只能手动更新,因此无法解决问题。
  • 从git读取文件:与上述相同,它必须位于私有存储库中,除非手动输入凭据,否则无法从R自动访问该文件。

1 个答案:

答案 0 :(得分:0)

我会将其保存在自己的存储库中。我不使用Gitlab,而是将Bitbucket用于私人仓库。

您提到它必须是手动的,但是R中有一些旨在保护密码的软件包。

electron-with-express

http://blog.revolutionanalytics.com/2015/12/securely-storing-your-secrets-in-r-code.html

我会将软件包安装在使用它的存储库中,并具有一些update_package函数,以在版本更改时对其进行更新。

您可以将此核心R程序包作为依赖项添加到也使用它的R程序包中,而以前没有尝试过。

Installing non-public packages from Gitlab using devtools::install_git

作为替代方案,这可行吗?

https://github.com/r-lib/devtools/blob/master/vignettes/dependencies.Rmd

干杯, 强尼