我在我的Java应用程序中使用google-diff-match-patch来创建差异。我使用diff_prettyHtml方法生成diff的HTML输出。
但是,我希望有两个不同的输出,所以我可以将它们并排放置,以使用户更容易看到差异。 (例如,像Eclipse一样。)
我可以使用该库中的任何内容来实现此目的吗? 你将如何做到这一点? (如果可能的话,我不会使用不同的库。)
答案 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/
欢迎测试用例失败。