我在Mercurial中创建了几个匿名分支(使用TortoiseHg)。
但是现在我后悔没有给它们命名,因为它们毕竟是[特殊]修改。
有没有办法命名这些无名分支?
即:
将45和46的名称从“默认”更改为其他名称。
答案 0 :(得分:5)
不,一旦你推送了附加到特定提交的分支标签,你就无法更改它,但是你可以在该拓扑分支上添加一个新的提交,它将按照你想要的名称命名:
hg checkout 46
hg branch what_I_wish_I_named_it
... maybe have to make a small edit here ...
hg commit
然后你将有一个新的提交,其序号修订号很高,但其拓扑位置悬挂在46,它将具有你想要的分支名称。
或者,查看书签,更像是git-branches或auto-moving-tags。您可以轻松地将书签指向修订版46,并且只要您提交该分支,它就会向前移动。
答案 1 :(得分:2)
您可以使用hg rebase
extension。
这样的事情应该这样做:
hg up 44
hg branch what_I_wish_I_called_45
hg commit
hg rebase --base 45 --dest 47
hg commit
hg up 44
hg branch what_I_wish_I_called_46
hg commit
hg rebase --base 46 --dest 48
hg commit
说明:
另外,正如Ry4an在评论中指出的那样,这只有在您没有推送存储库时才有效;如果你有,旧的分支将会回来。但是,您可以使用新存储库替换旧存储库。根据平台(github,kiln等),它的工作方式会有所不同,但归结为重命名并将旧存储库移开,然后将所有上述更改推送到具有正确名称的新存储库,网址等。