2011-06-02 83 views
5

我正在使用google-diff-match-patch与我的Java应用程序创建差异。我使用diff_prettyHtml方法来生成diff的HTML输出。diff_match_patch:生成并排视图

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

我可以用它来实现这个库中的任何东西吗? 怎么办? (如果可能的话,我不会使用不同的库)。

回答

1

假设你不是试图区分HTML,在这种情况下,我建议使用DaisyDiff,你可能想用diff-match-patch做什么是line differencing, which is described on a project wiki page。基本上,它涉及到生成一个哈希代码数组,左右各一行,并跟踪这些哈希码相对于地图中的行,然后通过差异算法运行这些数组。然后,您将diff输出与地图一起使用,以适当地重新水化左侧和右侧突出显示。

+0

顺便说一句,我写了一个包装库来帮助使用'diff_match_patch'所需的“演示工作”:https://github.com/arnab/jQuery.PrettyTextDiff – arnab 2013-01-24 09:42:18