我有一个Git存储库,我需要使用library
作为源代码提供,该代码使用Mercurial作为版本控制。我想将版本控制保留在我的git存储库中,以便能够以简单的方式更新库。
当前目录结构如下:
root (git repo here)
directory1
...
directoryN
在root
文件夹中添加库并进行以下配置是否安全?
root (git repo here)
library_folder (mercurial repo here)
directory1
...
directoryN
如果是,是通过使用对Git可见的mercurial更新library_folder
进行的更改是否可以安全地提交给Git回购?
工作流程应该是这样的:
library
library
次更新答案 0 :(得分:1)
使用您建议的流程,整个' .hg'包含完整的Mercurial历史也将被提交。这似乎是浪费,很多开销和麻烦等待发生。
更安全的替代方法是使用hg-git转换Mercurial存储库,然后使用git submodules或git子树(不确定哪个最好)来存储对正确变更集的引用。 这样,您只需要在主存储库中存储引用,而不是所有库内容和历史记录。
另一种选择是选择一个大型存储库',但是您必须承诺所有的'库'文件除了 .hg目录。这可以很容易使用(复杂性较低)。缺点是您丢失了历史记录(您可以查看使用历史记录导入代码的工具)。
答案 1 :(得分:0)
您可以向与Mathiasdm方向建议相反的方向移动:直接从Git使用Mercurial存储库。
Mercurial bridge in Git将允许您以相同的方式have and use Mercurial repositories(阅读Alex的评论),因为您使用Git存储库(我将建议Git的子树,而不是子模块)