如何命名匿名分支?

时间:2014-01-14 19:46:08

标签: mercurial tortoisehg

我在Mercurial中创建了几个匿名分支(使用TortoiseHg)。

但是现在我后悔没有给它们命名,因为它们毕竟是[特殊]修改。

有没有办法命名这些无名分支?

即: enter image description here

将45和46的名称从“默认”更改为其他名称。

2 个答案:

答案 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

说明:

  • 获取修订版44
  • 使用正确的名称创建一个新分支,以替换包含45
  • 的分支
  • 提交
  • 删除包含45的分支并将其移动到我们刚刚创建的分支的末尾
  • 提交
  • 再次获得第44次修订
  • 使用正确的名称创建一个新分支,以替换包含46
  • 的分支
  • 提交
  • 删除包含46的分支并将其移动到我们刚刚创建的分支的末尾
  • 提交

另外,正如Ry4an在评论中指出的那样,这只有在您没有推送存储库时才有效;如果你有,旧的分支将会回来。但是,您可以使用新存储库替换旧存储库。根据平台(github,kiln等),它的工作方式会有所不同,但归结为重命名并将旧存储库移开,然后将所有上述更改推送到具有正确名称的新存储库,网址等。

相关问题