Mercurial使用哪些合并策略?

6

我在一个大规模多并行分支的环境中工作。看到GIT,我发现它有几种合并策略:

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

Mercurial有这些的等价物吗?(即Mercurial的合并算法实现是否像递归一样好?)

2
“already up-to-date”和“fast-forward”不是合并策略。然而,有“ours”和“subtree”两种。 - CB Bailey
还有一个有趣的链接:http://kiln.stackexchange.com/questions/2983/what-is-the-algorithm-or-decision-process-used-by-mercurial-during-merge - VonC
1个回答

9
  • 已经是最新版本
  • 快进

我猜这些不是合并策略,第一个是当没有需要合并的内容时(显然是支持的)。第二个不是合并,更新在hg中等同于快进(没有需要合并的内容)。

  • 八爪鱼

不适用于mercurial,合并总是在两个分支之间。

  • 解决

这是默认的合并策略。

  • 递归

可能可以通过自定义合并脚本来完成(hg,就像git一样调用外部工具处理合并)。但目前似乎没有人对此感兴趣,也许是因为与解决相比没有太多改进。


1
“快进”不是rebase:实际上是“最新”的相反,因为当前分支是合并分支的祖先。默认情况下(即没有--no-ff选项),Git只是推进分支头而不执行无意义的合并。 - Jakub Narębski
3
“递归”合并策略的设计目的是处理交叉合并和其他情况,这些情况有多个合并基础,并且在此类情况下还涉及重命名。 - Jakub Narębski
@Jakub,谢谢,我更新了有关快进的部分。所以在Mercurial中只需使用“update”。递归策略在实践中有区别吗? - tonfa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接