【问题标题】:Does nodejs have a working diff library or algorithm? [closed]nodejs 是否有有效的差异库或算法? [关闭]
【发布时间】:2014-09-26 18:16:16
【问题描述】:

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

到目前为止我发现的所有问题(例如,http://ejohn.org/projects/javascript-diff-algorithm/)在极端情况下都失败了

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

【问题讨论】:

  • DeaDEnD 请将其发布为答案,它解决了我的问题。
  • 有为unix编写的diff工具,使用它们

标签: javascript node.js diff


【解决方案1】:

也许这会对你有所帮助 — jsdiff

【讨论】:

  • 上游又领先了,所以我更新了链接。我怀疑在您发布此内容时上游已经落后了。这是之前链接的那个:github.com/NV/jsdiff
【解决方案2】:

我是google diff match patch 的粉丝。你可以试试here的例子。

有不同的清理选项来调整差异之间的共性水平。我不喜欢语义清理选项,因为我觉得它过于激进,但值为 10 的效率清理对我来说效果很好。

【讨论】:

  • 我喜欢这个,因为它支持 Java、JavaScript、Dart、C++、C#、Objective C、Lua 和 Python。无论使用哪种语言,每个库都具有相同的 API 和相同的功能。
【解决方案3】:

我在下一页中使用 javascript 编写了一个 diff 算法实现。

https://github.com/cubicdaiya/onp

这与 node.js 一起运行。此外,下页还有 node.js 的 C++ 插件版本。

https://github.com/cubicdaiya/node-dtl

你可以用 npm 安装它。

$ npm install -g dtl

【讨论】:

    【解决方案4】:

    还有一个 adiff,它是一个用 Javascript 编写的 diff/patch 库。

    https://github.com/dominictarr/adiff

    【讨论】:

      【解决方案5】:

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

      【讨论】:

        【解决方案6】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-10-22
          • 2010-09-07
          • 2023-03-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多