50

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

每种算法的优点是什么?是否对算法执行不同的各种情况进行了比较?

4

2 回答 2

38

我认为支持多种算法,因为在所有情况下,没有一种算法显然是最佳选择。

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

总而言之,这就是我所理解的差异:

这是迈尔斯速度、耐心和直方图的比较:http ://marc.info/?l=git&m=133103975225142&w=2

这是直方图与 Myers 的差异输出的比较:http ://marc.info/?l=git&m=138023003519837&w=2

于 2013-11-25T17:58:37.197 回答
3

虽然只比较了 2 种算法:Myers 和 Histogram,但它可能会有所帮助。Nugroho 等人的一项研究。diff揭示了两种算法之间的分歧程度。该研究进行了 3 次比较,即指标、SZZ 算法和补丁。从metrics和SZZ的对比中,我们可以看到Myers和Histogram在不同识别代码变化的数量上有很大的差异。确实,diff's在描述变化时,这些都不是不正确的。然而,从手动补丁比较来看,直方图算法diff在描述人类改变意图方面提供了一个更好的合理输出。

于 2019-02-22T02:49:29.147 回答