正如标题所说:我在mercurial中制作了一个标签。
hg tag release_123
但后来我发现名字错了,应该是release_124。是否可以简单地重命名标签,还是我必须创建一个新标签?
答案 0 :(得分:17)
我会通过删除标记,然后添加一个新名称
的新标记来实现Mercurial tag wiki解释了如何删除标记:
如何删除标签?
通过
hg tag --remove tagname
(这是与cvs tag -d最接近的等价物)
将标记名0000000000000000000000000000000000000000添加到最后 of .hgtags
删除.hgtags中对标记名的所有引用(但这可能会 混淆多头标签冲突解决算法)
答案 1 :(得分:8)
您应该能够在.hgtags
文件中编辑regular tags(并提交)
“常规”标记(没有特殊说明符)受版本控制,与其他更改一起传播,并存在于存储库中的
.hgtags
文件中。
这个old thread提到你需要在回购的所有HEADS中这样做。
答案 2 :(得分:1)
如果您使用的是TortoiseHg,它非常简单:
case#1 (如果是本地标记):右键单击已标记的变更集|标记... |选择标记|选项|替换现有标记|完成<本地标签将消失>
case#2 (如果它是全局标记):右键单击标记的更改集|标记... |。选择标签|选项|替换现有标签|去掉 现在,选择更改集并创建新标签(就像重命名的标签一样)。虽然不是一键式:-)
答案 3 :(得分:0)
就像@ matt-ellen所说的那样,但反之亦然。因为在删除旧标记之前,我希望确保修订版本已正确标记。
在这里,我创建了一个包含4个修订版的回购示例。
示例:
$ hg log
changeset: 3:271cb2836c23
user: user <you@example.com>
date: Sat Mar 01 13:49:55 2014 -0600
summary: Very important things.
changeset: 2:3c953ee62faf
user: user <you@example.com>
date: Wed Feb 26 00:17:55 2014 -0600
summary: Did some changes.
changeset: 1:54e2275eed1e
user: user <you@example.com>
date: Tue Feb 25 01:34:31 2014 -0600
summary: So, lots of things here.
changeset: 0:3f3e1aee4e14
user: user <you@example.com>
date: Sat Feb 22 00:42:29 2014 -0600
summary: Inital project checkin.
$ hg tags
tip 3:271cb2836c23
$ hg tag -r 3c953ee62faf release_123
$ hg tags
tip 3:271cb2836c23
release_123 2:3c953ee62faf
$ hg tag -r 3c953ee62faf release_124
$ hg tags
tip 3:271cb2836c23
release_123 2:3c953ee62faf
release_124 2:3c953ee62faf
$ hg tag --remove release_123
$ hg tags
tip 3:271cb2836c23
release_124 2:3c953ee62faf
答案 4 :(得分:0)
我一直在寻找同一问题的解决方案:我发现这个命令会创建另一个标签,并使用新名称从前一个标签复制。但它并没有删除旧的。它必须手动删除。
重命名标记:
hg tag -f -r
要删除旧标记:
hg tag --remove