我需要定期将一个汞存储库(我们称之为 A)的所有新变更集合并到另一个汞仓库(我们称之为 B)的子目录中。这意味着,仅复制所有文件不是一种选择,因为 B 中的文件也可能被更改,并且必须进行适当的合并。
到目前为止,我唯一发现的是 http://hgtip.com/tips/advanced/2009-11-17-combining-repositories/,这是关于组合存储库,而不是真正一遍又一遍地合并,包括变更集。
有什么想法吗?提前谢谢。
听起来像是你想使用sub-repositories
的情况:将存储库 A 作为子存储库包含在父存储库 B 中。
让我们假设,A 的所有内容都在路径中找到 B/A
。这样,您将在本地拥有存储库 B,并在其中拥有另一个存储库。然后,您可以转到存储库 A,从另一个存储库 A' 中提取并按照您认为合适的方式进行合并。然后返回到父级别,返回到存储库 B.更新 A 的跟踪状态,仅此而已。如果要进行任何影响 A 和 B 的局部更改,请使用递归hg commit --subrepos
。有关更详细的说明,请参阅 https://www.mercurial-scm.org/wiki/Subrepository。
然而,请注意,子存储库是最后的手段;这意味着它有一些粗糙的边缘。其中之一是几乎不可能消除两个存储库的纠缠。
也许类似的功能(如来宾存储库、HG 嵌套或林扩展)更适合您的实际用例。