diff_match_patch:生成并排视图

时间:2011-06-02 08:23:28

标签: java diff

我在我的Java应用程序中使用google-diff-match-patch来创建差异。我使用diff_prettyHtml方法生成diff的HTML输出。

但是,我希望有两个不同的输出,所以我可以将它们并排放置,以使用户更容易看到差异。 (例如,像Eclipse一样。)

我可以使用该库中的任何内容来实现此目的吗? 将如何做到这一点? (如果可能的话,我不会使用不同的库。)

2 个答案:

答案 0 :(得分:2)

假设您没有尝试区分HTML,在这种情况下我建议使用DaisyDiff,您可能想要对diff-match-patch执行的操作是line differencing, which is described on a project wiki page。基本上它涉及生成一个哈希码数组,一个用于左右每一行,并跟踪相对于地图中的线的那些哈希码,然后通过差异算法运行这些数组。然后将diff输出与地图结合使用,以适当地重新水化左右突出显示。

答案 1 :(得分:0)

我试图在Python中实现不同的方法:

http://code.activestate.com/recipes/577784-line-based-side-by-side-diff/

欢迎测试用例失败。