2009-11-27 92 views
6

我在具有大規模多平行分支的環境中工作。看看GIT我看到它有幾種合併策略:Mercurial使用哪種合併策略?

already up-to-date 
fast-forward 
octopus 
resolve 
recursive 

Mercurial是否具有相同的這些? (即是水銀​​的合併算法的實現不如遞歸?

+2

'已經是最新的'和'快進'不是合併策略。雖然有,我們的和子樹。 –

+0

也感興趣:http://kiln.stackexchange.com/questions/2983/what-is-the-algorithm-or-decision-process-used-by-mercurial-during-merge – VonC

回答

9
  • 已經起牀了最新
  • 快進

那些沒有合併的策略,我想第一個當沒有什麼合併(顯然支持)。第二個是不是合併,以Hg更新相當於快進(沒有什麼合併)。

  • 章魚

不適用於mercurial,合併總是在兩個頭之間。

  • 決心

這是默認的合併策略。

  • 遞歸

也許可以用自定義合併腳本完成(hg,像git只是調用外部工具來處理合並)。但是現在似乎沒有人對此感興趣,可能是因爲與解決問題相比,它沒有帶來很多改進。

+1

「快進」不是rebase:實際上與「最新」相反,在某種意義上說,當前分支是合併分支的祖先。默認情況下(即沒有'--no-ff'選項)Git只是推進分支頭而不是執行無意義的合併。 –

+3

「遞歸」合併策略旨在處理與多個合併基礎的縱橫交錯合併和其他情況......並在這種情況下進行重命名。 –

+0

@Jakub,謝謝我更新了關於快進的部分。所以這只是「更新」mercurial。 遞歸策略在實踐中有所作爲嗎? – tonfa