How can one change the name of a tag?

后端 未结 5 1210
我在风中等你
我在风中等你 2021-02-19 03:59

I have made a tag in mercurial:

hg tag release_123

Later on I found out that the name was wrong, it should be release_124. Is it pos

相关标签:
5条回答
  • 2021-02-19 04:28

    If you are using TortoiseHg, its pretty simple:

    case#1 if it's a local tag: right click a tagged change-set|tag...|Select tag |Options |Replace existing tag | Done < local tag will disappear>

    case#2 if its global tag: right click a tagged change-set|tag...| Select tag| Options | Replace existing tag | Remove Now select change-set and create new tag (its like a renamed tag). Not in one click though :-)

    0 讨论(0)
  • 2021-02-19 04:30

    I would do it by removing the tag and then adding a new tag with the new name

    The Mercurial tag wiki explains how to remove a tag:

    How do I remove a tag?

    Either by

    • hg tag --remove tagname

    (this being the nearest equivalent to cvs tag -d)

    • adding tagname 0000000000000000000000000000000000000000 to the end of .hgtags

    • removing all references to tagname in .hgtags (but this might confuse the multiple-head tag collision resolution algorithm)

    0 讨论(0)
  • 2021-02-19 04:34

    I've been looking for a solution to same issue: I found this command which creates another tag with copied from the previous one with a new name. But it does not remove the old one. It has to be deleted manually.

    Rename a tag :

    hg tag -f -r

    To delete the old tag:

    hg tag --remove

    0 讨论(0)
  • 2021-02-19 04:35

    Like what @matt-ellen has said, but in reverse. Because I like to be sure the revision is tagged properly before I delete the old tag.

    Here I create an example of a repo with 4 revisions.

    1. View the log
    2. View the tags (none, and tip)
    3. Create a tag at revision #2 (using the hash)
    4. View tags (now there is one, and tip)
    5. Create new tag name
    6. View tags (now there are two, and tip)
    7. Remove bad tag name
    8. View tags (now there is one, and tip)

    Example:

    $ 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
    
    0 讨论(0)
  • 2021-02-19 04:39

    You should be able to edit regular tags in the .hgtags file (and commit it)

    A "regular" tag (with no special specifier) is revision controlled, does propagate with other changes, and lives in the .hgtags file in a repository.

    This old thread mentions you need to do this in all HEADS of a repo though.

    0 讨论(0)
提交回复
热议问题