在一个mercurial存储库中维护两个不同代码的最佳实践

时间:2016-06-10 11:23:20

标签: mercurial

我目前正在研究两个不同的子项目。到现在为止,每个人都有两个不同的mercurial存储库。我想将两个sub_projects保存在一个存储库中,但是我仍然希望能够同时和单独地处理这两个sub_project,而不必在一次提交中提交两个子项目的更改。我的两个子项目完全独立。我希望能够独立承诺并查看每个子项目的历史。

我想知道在这种情况下最佳做法是什么。我想将这两个子项目全部保存在一个回购中,因为这样可以更方便地向客户交付。

非常感谢你的帮助,

1 个答案:

答案 0 :(得分:1)

如果它是两个不相关的代码库,那么我的建议是不要将它们合并为一个 - 它不会使处理变得更容易。

但是,如果您打算创建一个公共代码库,那么有不同的策略:

a)通过将一个项目拉入另一个项目,将它们合并到一个存储库中。这要求两个存储库中没有相同名称的文件。或者使用convert扩展名将它们放入单独的路径中,然后将转换后的存储库拉成一个。您必须手动注意进行提交,以便一次只能触摸一个项目的文件。

b)利用子项目。单独子项目的最佳选择是使用mercurial的subrepository扩展名;建议使用一个浅的父存储库,其中两个子项目就是:子存储库。请注意仔细阅读子存储库扩展的文档 - 它被称为“最后的特征”,原因是它确实有其粗糙的边缘。但是,您可以单独提交单个子项目而不触及另一个子项目,并通过在父级仓库中提交记录子项目状态的提交来创建项目的公共状态。

还有类似guest repo等类似的替代扩展 - 可能它们更适合您的用例。