0

我读过这个问题:如何将一些变更集移动到 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 

有任何想法吗?

4

1 回答 1

0

你确定你真的想要你在后来的照片中展示的东西吗?那是一个有两个根的存储库(两个没有父母的修订)。这并不违法,但不正常,而且绝对不是人们分支的方式。

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

或者你可以

hg update 10
hg commit --close-branch

并收工。这足以让 10 人停止出现在hg heads

于 2013-03-01T01:50:14.123 回答