使用HG同步两个不同回购中的文件

时间:2009-11-15 12:19:44

标签: mercurial

当我尝试在两个不同的存储库中同步文件时,我遇到了问题。我想做的是:

我有2个回购A和B,他们共享一些常见文件,假设它们位于 A / docs / common / B /文档/通用 即可。因此,当我在A中编写一些新文档时,我想将其更新为B,反之亦然。我该怎么办?

我试试这个:我在A中写一个.hgignore来忽略我不想同步到B的文件,然后尝试 hg push B的repo url 。它不起作用。

那我怎么能这样做呢?

感谢。

1 个答案:

答案 0 :(得分:2)

如果我正确阅读并且您的存储库根目录在docs目录之上(测试:hg root/file/path /file/path/A)您当前的解决方案,忽略repos中docs之外的文件,将无效,因为mercurial跟踪完整文件路径返回root,A/B/是文件路径的一部分,因此它们在不同的文件路径中是不同的两个回购品使他们分开回购。

您可以做的一件事是使用Mercurial's sub-repository support使文档成为A和B中“包含”的子回购。然后您可以推送/拉出文档,并且单独的,不同的父回购将会跟踪在他们已经更新的文档上有什么意义。

如果我误读了您的原始情况,A和B只是单独的克隆,而docs是一个顶级目录,在两个repos中都有相同的路径(测试:hg root {{1 }}和/file/path/A),那么你应该有一个完全正常的善变情况。只需确保您正在提交,推送(或拉动)和更新,您应该会看到更改的迁移。