2009-12-18 62 views
2

alt text http://img38.imageshack.us/img38/1863/screenshot20091218at112.png水銀無操作合併到保存歷史&靠近分支

修訂107意外地合併了所有的變化從100-106

修訂108被一個汞柱復歸--all -r 106,接着hg commit,這可能是錯誤的做法,因爲我沒有合併分支進行所有更改,而是將所有更改包含在一個沒有描述或歷史的變更集中。

A)我應該如何去合併首先分支?

但更重要的是:

B)我如何去了解現在合併分支?

+0

你是什麼意思「合併掉所有的變化」?你最初的目標是什麼? – tonfa 2009-12-18 12:05:43

+0

我的意思是它更新了工作副本,以便更改不再存在! – James 2009-12-18 12:14:31

+0

所以你與錯誤的cset合併? – tonfa 2009-12-18 12:47:02

回答

2

如果你還沒有推回購隨時隨地把你的盒子,你有一個簡單的辦法:

cd .. 
    hg clone -r 106 current newcurrent 
    cd newcurrent 
    hg pull -r 97 ../current 

現在newcurrent是一個回購,看起來就像你之前在107和108發生之前所做的一樣。

要合併這兩個,只是做:

hg update # which gets you to tip 
    hg merge # which merges in the other head and forces you to make choices 

目前還不清楚究竟哪裏做錯了創建107,所以我不知道如何建議改變做法,但它應該是一個簡單的合併問題。無意中排除了一個分支中的所有更改應該是hard

+0

謝謝! 這樣做的工作。 – James 2009-12-18 15:54:24

1

如果可能,備份存儲庫,以便您可以安全地進行試驗。

這個命令將撤消最後一筆交易:

hg rollback -h 

此命令可以幫助你撤消合併和恢復:

hg backout -h 

這個命令會恢復你的工作目錄到以前的狀態不影響儲存庫:

hg revert -h 

-h選項在每種情況下都是gi爲你的命令提供幫助。準備好應用該命令時,請除去-h選項。

我的第一個實驗是:

hg rollback 
hg merge -r 106 

該計劃是要回的修訂107,這看起來像含有的變更95和96頭的成功合併,然後在含有頭合併變更97,100 - 106