2009-11-27 57 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