如何将基础修订移动到mercurial中的另一个分支?

时间:2013-02-28 19:21:13

标签: mercurial branch revision

我读过这个问题:How to move some changeset to a new branch in mercurial

但我的问题略有不同。我有这个:

NULL -> 1 -> 2 -> 3 -> 4 -> etc   #default
 \ 
  10  #default (new head without parent)
   \ 
    11 -> 12 -> 13 -> 14  #new-empty-branch

当然我应该从一开始就在de new-empty-branch中提交rev 10,但我没有,所以现在我想将修订版10从默认分支移动到#new-empty-branch。不幸的是,所有的修订都已经推出。

这就是我想要的结果:

NULL -> 1 -> 2 -> 3 -> 4 -> etc   #default
 \ 
  10 -> 11 -> 12 -> 13 -> 14  #new-empty-branch 

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

你确定你真的想要你在后面的图片中展示的内容吗?这是一个有两个root的存储库(没有父项的两个版本)。这不违法,但这不正常,绝对不是人们如何分支。

如果你真的想要那个(并且相信我几乎肯定不这样做)你将不得不修改变更集10(因为命名分支是修订版的散列组件)以及之后的每个变更集(因为父母的hash是修订版的哈希组件,你最终会得到一个不同的存储库,克隆它的每个人都必须删除它们的克隆并重新克隆。

或者你可以

hg update 10
hg commit --close-branch

并称之为一天。这足以让10停止出现在hg heads