我读过这个问题: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
有什么想法吗?
答案 0 :(得分:0)
你确定你真的想要你在后面的图片中展示的内容吗?这是一个有两个root的存储库(没有父项的两个版本)。这不违法,但这不正常,绝对不是人们如何分支。
如果你真的想要那个(并且相信我几乎肯定不这样做)你将不得不修改变更集10(因为命名分支是修订版的散列组件)以及之后的每个变更集(因为父母的hash是修订版的哈希组件,你最终会得到一个不同的存储库,克隆它的每个人都必须删除它们的克隆并重新克隆。
或者你可以
hg update 10
hg commit --close-branch
并称之为一天。这足以让10停止出现在hg heads