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範圍,但我沒有嘗試過。