【发布时间】:2017-05-29 08:36:13
【问题描述】:
我有一个包含多个标签的 Mercurial 存储库。这些标签用于发布管理,并且都包含版本号。所有标签始终添加到默认分支上。这是我的.hgtags 文件的摘录:
55d0e566170f61935088c301ced8137b17868171 1.63
d898fc03cefa0becb880e0ad214d80aec22b79df 1.64
dfef02cc4a2f8e34ba9e34c782299708d8ec68b7 1.65
f0519f072992c39346b65332e444492fc5694e14 1.66
6537785f8093c0f3b55df0e41bb5586aa104bd9f 1.66.1
由于某种原因,1.66 标签没有出现在 TortoiseHg 中,也没有出现在 hg tags 中。我可以通过 TortoiseHg 再次添加它来显示它,这会在文件中创建额外的两行:
0000000000000000000000000000000000000000 1.66
f0519f072992c39346b65332e444492fc5694e14 1.66
如您所见,新创建的标签的哈希值仍然与旧标签的哈希值相同。
为什么现有标签不显示?清除 .hg/cache 目录没有帮助。
【问题讨论】:
-
您的 .hgtags 文件中是否有另一行删除了标签,即
0000000000000000000000000000000000000000 1.66? -
@planetmaker 不,这是 1.66 的唯一行
-
Mercurial 使用来自所有分支头的 .hgtags 文件,所以可能在另一个头中删除了标签?
-
@MarkTolonen 我认为不是。有什么简单的方法可以找到还是我必须手动检查每个分支头?
-
在 Windows 上,您可以执行以下操作以在每个拓扑头上列出
.hgtags的内容:for /f %r in ('hg heads -t -T {rev}\n') do @hg cat .hgtags -r %r。然后检查结果是否删除了标记。
标签: tags mercurial tortoisehg