Git提供了这4种差异算法,但没有任何进一步的信息,它们的区别是什么。
每种算法有哪些优点?是否存在算法执行方式不同的各种情况的比较?
答案 0 :(得分:34)
我认为支持多种算法,因为在所有情况下,没有一种算法显然是最佳选择。
差异在于补丁输出的可读性和生成补丁所需的处理时间。
总结一下,这就是我所理解的差异:
以下是迈尔斯速度,耐心和直方图的比较:http://marc.info/?l=git&m=133103975225142&w=2
以下是直方图与迈尔斯的差异输出的比较:http://marc.info/?l=git&m=138023003519837&w=2
答案 1 :(得分:1)
尽管仅比较两种算法:Myers和Histogram,但这可能会有所帮助。 A study by Nugroho et al.揭示了两种diff
算法之间的分歧程度。该研究进行了3个比较,即指标,SZZ算法和补丁。从指标和SZZ的比较中,我们可以看到Myers和Histogram之间在已识别的不同代码更改数量上的巨大差异。确实,这些diff's
都没有错误地描述更改。但是,通过手动补丁比较,直方图算法可提供更好的diff
合理输出,以更好地描述人类改变的意图。