nodejs是否有一个有效的差异库或算法?

时间:2012-03-23 01:31:10

标签: javascript node.js diff

我正在寻找一个javascript diff算法实现或库,它已经过测试并可以处理任意utf8文本文件。

到目前为止我发现的所有内容(例如,http://ejohn.org/projects/javascript-diff-algorithm/)都在角落案件中失败

(尝试在我的示例库中使用包含字符串'__proto__'的文件。)

6 个答案:

答案 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库。

https://github.com/dominictarr/adiff

答案 4 :(得分:1)

查看JavaScript库wikEd diff。它具有Unicode和多语言支持。它还可以检测并突出显示块移动,并且基于单词/字符。您还可以使用online too/demo来测试不同的设置并查看内部数据结构。图书馆的代码已完全注释。

答案 5 :(得分:0)

是的,在Mocha test tool内的某个地方 - 请参阅TJ Holowaychuk's blog post about it