在Mercurial中使用基本标签

时间:2010-09-21 16:45:21

标签: mercurial

我们刚开始使用hg,我们在系统中使用基本标签作为通用模块。我有几个关于标签如何工作的问题。

  • (#1)当我使用以下命令添加标签时,它会自动为我检入.hgtags文件吗?

    hg标签MY_TAG

  • 当我第一次添加标签时,它会在.hgtags文件中添加一行。当我在tag命令上执行-f(强制)时,它会向该文件添加另一个条目。然后,当我删除它时,它会向.hgtags文件中添加 2个行。最终我的文件最终看起来像这样:

af9e9bf4cf004a7fab4f911e95d1002579fd851a MY_TAG   //from initial tag
af9e9bf4cf004a7fab4f911e95d1002579fd851a MY_TAG   //from delete (1/2)
0000000000000000000000000000000000000000 MY_TAG   //from delete (2/2)
4611114976f02dd0d4f8ec9e84266dcea161cd3f MY_TAG   //from tag after pull
0426c9e6e0ccf01e6d18d85420466d1edd1bff1f MY_TAG   //from forced tag
  • (#2)为什么要继续在.hgtags文件中添加行?当我在做基本标记时,我只关心在文件中有一个条目。我应该关心这种臃肿吗?我是否必须手动管理.hgtags文件才能以这种方式工作?

  • (#3)此外,删除行是否必须在文件中保持连续?

  • (#4)文件是从上到下读取,还是Mercurial实际上找到了最新的变更集并在移动到标记时使用了该变更集?

1 个答案:

答案 0 :(得分:5)

  1. 是的,它会自动为您检查,并生成相应的消息。
  2. Mercurial使用.hgtags文件中的最后一个标记。为了保持历史不变,它只是添加了一些行。
  3. 删除只是说给定标记对应于“null”修订版,这意味着它们不存在。
  4. .hgtags从上到下阅读。无论匹配MY_TAG的最后一行是什么用作标记。
  5. 如果你需要清理一些东西,真的没有理由不编辑标签文件。一般情况下,标签不应移动,如果您想要经常移动它们,您可能需要查看bookmarks