2017-08-10 62 views
0

怎樣才能迅速地重新設置父級樹在水銀等,如果這是原來的結構:簡單重造在mercurial?

A-B-C-D-E-F

我想將它更改爲:

D-E-F(甚至A-D-E-F會做)

我試着在this answer的建議與splicemap,但它失敗,錯誤splice map revision <hash> is not being converted, ignoring'

它也打印出來abort: no node!

任何幫助將appriciated。謝謝。

+0

我假設你想用hg-convert來代替「rebase」嗎? – Tom

+0

'convert'也會重寫歷史記錄,但不會消除更改;否則,將來的更改可能取決於已刪除的更改。你想要實際移除更改嗎? –

+0

我們無法理解您的問題,請更具體。 –

回答

1

我會做這個使用histedit擴展:

首先,讓我們來創建你想要的結構的測試回購:

hg init 
echo "a" > file 
hg ci -m "a" 
echo "b" >> file 
hg ci -m "b" 
echo "c" >> file 
hg ci -m "c" 
echo "d" >> file 
hg ci -m "d" 
echo "e" >> file 
hg ci -m "e" 
echo "f" >> file 
hg ci -m "f" 

然後,做hg histedit,並輸入以下選擇您的編輯:

pick e4c09693d7a6 0 a 
r 380d6d1ef006 1 b 
r 33131e82bb1b 2 c 
r pick 9325fb48b48e 3 d 
pick 844ebb0b3844 4 e 
pick bc85bc9ade8f 5 f 

這隻會在回購中留下三個提交。

請注意,對於此工作,phase您的回購中的提交必須是草稿。您還可能需要激活mercurial附帶的histedit擴展。