2009-09-20 192 views
25

我正在寻找一个C或C++差异库。我知道我可以使用Unix diff工具与systemexec结合使用,但我真的很想要一个库。如果图书馆也可以执行补丁,比如Unix patch工具,那将很方便。有没有办法区分C++文件?

+0

在我看来,差异库是相当普遍的,但谷歌尚未提出一个很好的答案。 – 2009-09-21 19:28:27

+0

[在类似的帖子中为C/C++提供了一个很好的方法。](https://stackoverflow.com/questions/42377443/diff-compare-two-files-by-file-descriptor-fd-instead-of-文件名/ 42380790#42380790) – DevNull 2017-02-22 22:53:33

回答

21

我想我已经找到了一个很好的解决方案,最后:

DTL - Diff Template Library --- Tutorial

支持补丁。我必须在Google中输入“diff.cpp”才能找到它。希望它有效!

+1

这对我很好! – KeatsKelleher 2011-11-02 10:26:08

11

看起来好像Google Diff, Match and Patch libraries是你需要的。

+0

Eh,但该库的C++版本依赖于Qt。我需要一个非GUI应用程序的diff/patch库。 – 2009-09-20 23:46:50

+1

Qt具有非GUI部件,可以在控制台应用程序中使用。 – Bill 2009-09-24 17:03:33

+11

Qt是我不想拥有的大型库依赖项。为什么作者没有使用STL? – 2009-09-29 20:48:52

3

This是 “溶液到SES/LCS与如以下公报中记载的海森堡线性空间求精” 的实现:

E.斯堡,``的O(ND)差分 算法及其变体“,算法1,2(1986),251-266。 http://www.cs.arizona.edu/people/gene/PAPERS/diff.ps

发现它的Wikipedia page on diff

这只是为了找到差异,而不是将其作为补丁应用。我认为补丁的应用实际上是一个更难的问题;由于冲突的风险。它需要某种形式的用户控制反馈机制来解决冲突。

+0

这是迄今为止我回答的最好的,但我真的很想要一个补丁库。我会稍等一下,看看其他人是否有答案。 – 2009-09-24 16:48:46

+0

在开始链接的文件diff.c似乎已经消失。 (虽然它仍在Google索引中) – Tanuva 2017-07-24 09:02:40

+0

@Tanuva Huh?这个对我有用。 – unwind 2017-07-24 13:08:27

1

在谷歌也很难找到,结果Gnulib有diff module。这似乎足以满足我想要差异库的需求。但它似乎没有补丁模块。

相关问题