2014-01-14 46 views
3

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

但现在我很遗憾没有命名它们,因为它们毕竟是[特殊]修订。

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

即: enter image description here

变化,从 “默认” 为其他45和46名。

回答

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的分支并将其移动到我们刚刚创建的分支的末尾ated
  • 提交
  • 读版本44再次
  • 创建正确的名称一个新的分支来代替含46
  • 分支提交
  • 删除分支含46并将其移动到分支结束我们刚刚创建
  • 提交

而且,Ry4an在评论中指出的,如果你还没有推开仓库这只作品;如果你有,旧的分支会回来。但是,您可以用新的存储库替换旧的存储库。根据平台(github,kiln等),这种工作方式会有所不同,但归结起来,重新命名和移动旧的存储库,然后将所有上述更改推送到一个具有正确名称的新存储库中, URL等

+1

值得指出的是(也许),这是唯一的,如果你还没有推存储库。如果你有回复,那么下一次你修改的修改集会以未修改的形式返回。 –

4

不,你不能改变连接到特定的承诺一旦你推它的分支标签,但您可以添加对拓扑分支将有头命名为您的commit想:

hg checkout 46 
hg branch what_I_wish_I_named_it 
... maybe have to make a small edit here ... 
hg commit 

然后你会得到一个新的提交,它的序号修订号很高,但是它的拓扑位置挂在了46之外,它会有你想要的分支名称。

或者,查看书签,它更像是git-branches或自动移动标签。您可以在修订版46中轻松指向书签,只要您在该分支上提交,就会向前移动。