2009-09-20 186 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。這似乎足以滿足我想要差異庫的需求。但它似乎沒有補丁模塊。

相關問題