本文介绍了标准(Myers),最小,耐心和直方图差异算法产生的不同结果的示例的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Git提供了这4种diff算法,但是没有任何进一步的信息。它们之间有什么区别。



每种算法的优点是什么?

解决方案

我认为支持多种算法,因为这些算法都不支持显然是所有情况下的最佳选择。



差异在于补丁输出的可读性和生成补丁所需的处理时间。


总结一下,这就是我理解的区别:




  • 迈尔斯:最初在xdiff中实现的算法( 和),针对更改后的行优化编辑距离

  • 最小:Myers并尝试最小化补丁大小。

  • 耐心:尝试权衡补丁的可读性,补丁大小和处理时间。参见和或进行说明。

  • 直方图:主要是为速度而创建。比起最初在jgit()中开发的Myers和Patience更快。 li>


以下是Myers,耐心和直方图的速度比较:



这里是直方图与Myers的差异输出的比较:


Git offers these 4 diff algorithms, but without any further information what are their differences.

What are the advantages of each of this algorithms? Is there some comparison of various cases where the algorithms perform differently?

解决方案

I think there are multiple algorithms supported because none of the algorithms are clearly the best choice in all cases.

The differences are in readability of the patch output and processing time needed to generate the patch.

Summarizing, this is what I understand the differences are:

Here is a comparison of speed for Myers, patience, and histogram: http://marc.info/?l=git&m=133103975225142&w=2

Here is a comparison of diff output of Histogram vs Myers: http://marc.info/?l=git&m=138023003519837&w=2

这篇关于标准(Myers),最小,耐心和直方图差异算法产生的不同结果的示例的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-05 08:36