我正在寻找一个javascript diff算法实现或库,它已经过测试并可以处理任意utf8文本文件。
到目前为止我发现的所有内容(例如,http://ejohn.org/projects/javascript-diff-algorithm/)都在角落案件中失败
(尝试在我的示例库中使用包含字符串'__proto__'
的文件。)
答案 0 :(得分:11)
也许这会对你有帮助 - jsdiff
答案 1 :(得分:3)
我在下一页中使用javascript编写了一个diff算法实现。
https://github.com/cubicdaiya/onp
这与node.js一起运行。 Forthermore在后续页面中为node.js提供了一个C ++插件版本。
https://github.com/cubicdaiya/node-dtl
你可以用npm安装它。
$ npm install -g dtl
答案 2 :(得分:3)
我是google diff match patch的粉丝。您可以尝试一个示例here。
有不同的清理选项来调整差异之间的共性水平。我不喜欢语义清理选项,因为我发现它过于激进,但效率清理值为10对我来说很有效。
答案 3 :(得分:2)
还有adiff是用Javascript编写的diff / patch库。
答案 4 :(得分:1)
查看JavaScript库wikEd diff。它具有Unicode和多语言支持。它还可以检测并突出显示块移动,并且基于单词/字符。您还可以使用online too/demo来测试不同的设置并查看内部数据结构。图书馆的代码已完全注释。
答案 5 :(得分:0)
是的,在Mocha test tool内的某个地方 - 请参阅TJ Holowaychuk's blog post about it。