我正在寻找 C 或 C++ 差异库。我知道我可以将 Unixdiff
工具与system
or结合使用exec
,但我真的想要一个库。如果该库也可以执行补丁程序(例如 Unixpatch
工具),那将很方便。
问问题
20787 次
6 回答
24
于 2009-09-24T17:00:19.380 回答
13
看起来 Google Diff、Match 和 Patch 库正是您所需要的。
于 2009-09-20T18:43:15.863 回答
3
有一个是Mercurial的一部分。它作为一些设计为 Python 扩展的 C 代码存在,但它可能很容易被提取。我相信它也可以做二进制差异。
相关的 .c 文件是mercurial/bdiff.c、mercurial/mpatch.c和可能的mercurial/diffhelpers.c。
于 2009-09-29T04:39:38.887 回答
3
这是“使用 Hirschberg 线性空间细化的 SES/LCS 解决方案,如以下出版物中所述”的实现:
E. Myers,“O(ND) 差分算法及其变体”,Algorithmica 1, 2 (1986), 251-266。 http://www.cs.arizona.edu/people/gene/PAPERS/diff.ps
在 diff 的维基百科页面上找到它。
这只是为了找到一个差异,而不是将它作为补丁应用。我认为补丁的应用实际上是一个更难的问题;因为有冲突的风险。它需要某种形式的用户控制反馈机制来解决冲突。
于 2009-09-24T06:41:56.370 回答
2
Subversion 包括一个库libsvn_diff
。
于 2009-09-28T03:37:45.983 回答
1
在 Google 中也几乎找不到,事实证明 Gnulib 有一个diff 模块。这似乎足以满足我想要一个差异库的目的。不过,它似乎没有补丁模块。
于 2011-09-12T04:55:24.947 回答