我可以在mercurial中创建一个撤消先前合并的分支吗?

时间:2012-08-10 01:45:51

标签: version-control mercurial merge versioning branching-and-merging

我想回到一个有效的修订版本,并将自修订以来我所做的每一个变更集转移到一个新的分支。基本上,我已经从主分支合并了几次,并且想要将它们反转出去。

这可能吗?是否有任何工具可以帮助我做到这一点?

1 个答案:

答案 0 :(得分:2)

如果您的历史记录如下:

[M1]--[M2]----[M3]---[M4]----[M5]----[M6]
   \            \               \
    [B1]--[B2]--[B3]----[B4]----[B5]----[B6]

其中M#是默认分支上的变更集,而B#是现有分支上的变更集,B3和B5是合并变更集,您的目标是获得如下内容:

[M1]--[M2]----[M3]---[M4]----[M5]----[M6]
   \
    [B1]--[B2]--[B4]----[B6]

你可以这样做:

hg update M1
hg branch new_branch_I_want
hg graft B1 B2 B4 B6

这会将这些更改提取到您的新分支中。当然,旧分支仍将保持未修改状态。由于移植物跳过合并变更集,您可以指定整个B1 :: B6范围,但我没有尝试过。

相关问题