Mercurial - 应该合并.hgtags吗?

时间:2011-02-22 15:40:28

标签: mercurial merge .hgtags

如果要将存储库B中的更改合并到存储库A中,是否应合并.hgtags中的更改?

存储库B可能有标签1.01,1.02,2.03不在A中。为什么要将它们合并到存储库A的.hgtags文件中?如果我们合并然后通过查看标签1.01来尝试查看存储库A,我认为这不起作用。

2 个答案:

答案 0 :(得分:12)

简答:这确实有效,你应该合并.hgtags

为什么要实际合并.hgtags以及它为什么有意义?

所以你有

  • Repo A with Changesets 3(a1),4(a2),5(a3)
  • Repo B with Changesets 3(b1),4(b2),5(b3)tag 1.01

以上列为变更集编号(长唯一十六进制ID)标记

所以你将repo B合并到Repo A中并得到一些看起来像的东西。

      9 (a4) merge 
     /   \
    |   8 (b3) tag 1.01
    |    |
    |   7 (b2)
    |    |
    |   6 (b1)
 5 (a3)  |
    |    |
 4 (a2)  |
    |    |
 3 (a1)  |
     \   /
     2 (a0) 

如果您将repo更新为标记1.01,那么您将获得该代码在该时间点的确切内容当它在Repo B 时,就像mercurial承诺一样。

您应该合并它们,因为Repo B中的变更集已被标记为Repo A中变更集树的一部分,因此您在Repo B中标记的变更集现在已在Repo A中标记。不合并它们只会导致您丢失为变更集创建的标签。

答案 1 :(得分:12)

有趣的事情要知道(来自mercurial wiki

  

'有效'标签取自   所有人头上的.hgtags文件   分支机构。最接近小费的标签   优先级。

因此,当您合并(组合两个头)时,需要来合并.hgtags或某些标记将消失。