在进行git合并时,什么情况下应该使用strategy-option标志?(耐心|极小|直方图|迈尔斯)

new9mtju  于 2023-06-20  发布在  Git
关注(0)|答案(2)|浏览(115)

我想得到一个高质量的差异,我不担心需要多长时间,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是否等价?
vqlkdk9b

vqlkdk9b1#

您应该始终使用直方图,而不必担心它。绝大多数情况下,所有算法都会给予完全相同的结果,但偶尔会有一个XML文件或一个经过大量编辑的C文件,其中有大量的花括号,其中myers和minimal将合并文件中无意义的重复部分,并在冲突部分的任何一侧都有完全破碎和不可用的代码部分。patience和histogram都能很好地处理这些情况,但histogram运行得更快。由于直方图是最好和最快的算法,因此没有太多理由使用其他算法。

blpfk2vs

blpfk2vs2#

在可用的选项中,直方图应提供最高质量的差异。它也比patience更快,并且最适合XML,HTML或其他在一行中有多个相同结束标签或右括号/方括号/大括号的文件格式。

相关问题