mercurial:如何更改标签的名称

时间:2011-09-27 11:56:30

标签: mercurial

正如标题所说:我在mercurial中制作了一个标签。

hg tag release_123

但后来我发现名字错了,应该是release_124。是否可以简单地重命名标签,还是我必须创建一个新标签?

5 个答案:

答案 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个修订版的回购示例。

  1. 查看日志
  2. 查看标签(无和提示)
  3. 在修订版#2(使用哈希)
  4. 创建标记
  5. 查看标签(现在有一个,提示)
  6. 创建新标记名称
  7. 查看标签(现在有两个,小费)
  8. 删除不良标记名称
  9. 查看标签(现在有一个,提示)
  10. 示例:

    $ 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