我的问题与Mercurial move changes to a new branch相似,但并不完全相同。
我的一位同事开始研究一个新特性,并发布了一些本地提交。然后他注意到“哦,那应该进入一个有名字的分支”,于是他创造了一个分支。问题是,以前的提交应该已经在那个分支中了。所以简化的历史现在看起来有点像这样:
O 7: default
|
O 6: default
|
| O 5: newbranch
| |
| O 4: default
| |
| O 3: default
| /
O 2: default
|
O 1: default因此,现在默认有两个开放的头:7和4。我想去掉开放的头4,但当然,当我们将新分支合并回main时,3和4仍然合并回"main“默认(现在合并它们是不想要的,因为它会带来我们不想要的默认更改)。
问题是:处理这件事的最好方法是什么?
在5上做--close-branch,在2上创建一个新的分支,然后重新应用修改3-5?
据我所知,没有什么好办法简单地说“新分支从3开始,而不是从5开始”。
更新:,因为它已经被其他人删除了,所以我不想重新设置有问题的修订版。强迫同事重新创建/切换分支是可以的,因为这只会影响到一个人而不是5个人。
发布于 2011-09-29 13:32:37
要去掉额外的默认头部,您可以:
hg update -r 4
hg commit --close-branch -m "Closed extra default head. The changes from this branch will be merged along with 'newbranch', once it is complete."当您最终合并newbranch时,它将包括修订版3-5,以及在5之上提交的任何其他版本。
唯一的潜在问题是,修订版3-4不会被标记为命名分支的一部分。如果这对您来说真的很重要,那么您应该关闭额外的默认头和newbranch头,重新开始使用一个根植于修订2的新分支。
https://stackoverflow.com/questions/7596854
复制相似问题