我想得到一个高质量的差异,我不担心需要多长时间,eidogg。
git merge --strategy-option=diff-algorithm=minimal develop
From the docs,不清楚哪一个最适合哪种情况?
*default,myers基本的greedy diff算法。目前,这是默认设置。
*minimal花费额外的时间来确保产生尽可能小的差异。
*patience生成补丁时使用patience diff算法。
*histogram该算法将patience算法扩展为“支持低出现率的公共元素”。
有一个summary of the patience algorithm in another answer。
- 直方图算法是否总是比耐心算法更好,因为它扩展了它?
- 最小算法是否比默认算法更好,因为它“花费了额外的时间”?
--strategy-option=patience
和--strategy-option=diff-algorithm=patience
是否等价?
2条答案
按热度按时间vqlkdk9b1#
您应该始终使用直方图,而不必担心它。绝大多数情况下,所有算法都会给予完全相同的结果,但偶尔会有一个XML文件或一个经过大量编辑的C文件,其中有大量的花括号,其中myers和minimal将合并文件中无意义的重复部分,并在冲突部分的任何一侧都有完全破碎和不可用的代码部分。patience和histogram都能很好地处理这些情况,但histogram运行得更快。由于直方图是最好和最快的算法,因此没有太多理由使用其他算法。
blpfk2vs2#
在可用的选项中,直方图应提供最高质量的差异。它也比patience更快,并且最适合XML,HTML或其他在一行中有多个相同结束标签或右括号/方括号/大括号的文件格式。