2010-12-09 68 views
6

我來自CVS背景。Mercurial更新將覆蓋我的更改而不是合併

目前,我有2個並行開發的mercurial倉庫。 hello-world-bugfixhello-world-feature(這一個正在從hello-world-bugfix克隆)

現在,我想從hello-world-bugfix錯誤固定碼合併成hello-world-feature,這樣的日子的那一端,我會得到一個合併的文件。

[BUG2 BUG2 BUG2] 

START 
[BUG1 BUG1 BUG1] 

[FEATURE2 FEATURE2 FEATURE2] 

下面是所有事情看起來像之前,拉和合並。以下兩個文件已經提交。

alt text


alt text


現在,我從hello-world-feature進行拉動,從hello-world-bugfix拉變化。 alt text

然後,我執行更新,並打開always merge選項。 alt text

這是我的合併文件?

[BUG2 BUG2 BUG2] 

START 
[BUG1 BUG1 BUG1] 

看來我以前承諾[FEATURE2 FEATURE2 FEATURE2]被覆蓋。

看來,我不應該進行更新步驟,其將不會與bug合併feature,但覆蓋feature廢除bug拉動後我應該做的下一個正確步驟是什麼? (通過TortoiseHg),這樣我就可以得到錯誤修復代碼,並在那裏保留功能代碼?

這裏是hello-world-feature alt text

回答

7

的最終處置庫視圖中的「始終合併」選項不會做你認爲它。

它只合並未提交的更改。

當您更新時,提交的文件將被替換爲新版本。

合併已提交的更改,即。合併分支,你需要做一個明確的合併。

因此,我將選擇日誌中的BUG2 BUG2 BUG2變更集,然後右鍵單擊FEATURE2 FEATURE2 FEATURE2變更集並單擊合併,然後按照說明進行操作。

讓我展開「始終合併」複選框的功能。

比方說,我有兩個更改集在我的存儲庫中,我更新到第一個,然後我開始修改其中一個文件。

在某些時候,我認爲最好從其他變更集開始,所以我想更新它,保留我的修改。

如果我只是做一個更新,與未提交的修改,我得到這個對話框,當我嘗試更新:

Confirm Update

不過,如果我檢查「始終合併(如果可能)」複選框,它會簡單地假定我點擊了該對話框中的合併按鈕,但不提示我。

因此,「始終合併」在提交的文件上根本沒有任何功能,它不會爲您引入合併,它只會嘗試移動您的本地更改以及更新。

相關問題