0
我想返回到正在工作的修订版,并将自修订版以来所做的每个变更集都引入新分支。基本上,我已经从主分支合并了几次,并想要将这些结果反转出来。我可以在mercurial中创建一个分支以撤消以前的合并吗?
这可能吗?有没有什么工具可以帮助我做到这一点?
我想返回到正在工作的修订版,并将自修订版以来所做的每个变更集都引入新分支。基本上,我已经从主分支合并了几次,并想要将这些结果反转出来。我可以在mercurial中创建一个分支以撤消以前的合并吗?
这可能吗?有没有什么工具可以帮助我做到这一点?
如果你的历史是这样的:
[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范围,但我没有尝试过。