回答

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

相關問題