我正在尋找一個C或C++差異庫。我知道我可以使用Unix diff
工具與system
或exec
結合使用,但我真的很想要一個庫。如果圖書館也可以執行補丁,比如Unix patch
工具,那將很方便。有沒有辦法區分C++文件?
回答
我想我已經找到了一個很好的解決方案,最後:
的DTL - Diff Template Library --- Tutorial
支持補丁。我必須在Google中輸入「diff.cpp」才能找到它。希望它有效!
這對我很好! – KeatsKelleher 2011-11-02 10:26:08
看起來好像Google Diff, Match and Patch libraries是你需要的。
Eh,但該庫的C++版本依賴於Qt。我需要一個非GUI應用程序的diff/patch庫。 – 2009-09-20 23:46:50
Qt具有非GUI部件,可以在控制檯應用程序中使用。 – Bill 2009-09-24 17:03:33
Qt是我不想擁有的大型庫依賴項。爲什麼作者沒有使用STL? – 2009-09-29 20:48:52
This是 「溶液到SES/LCS與如以下公報中記載的海森堡線性空間求精」 的實現:
E.斯堡,``的O(ND)差分 算法及其變體「,算法1,2(1986),251-266。 http://www.cs.arizona.edu/people/gene/PAPERS/diff.ps
這只是爲了找到差異,而不是將其作爲補丁應用。我認爲補丁的應用實際上是一個更難的問題;由於衝突的風險。它需要某種形式的用戶控制反饋機制來解決衝突。
Subversion包含一個庫libsvn_diff
。
有一個是Mercurial的一部分。它作爲一些被設計爲Python擴展的C代碼存在,但它可能很容易被提取出來。我相信它也可以做二進制差異。
相關的.c文件是mercurial/bdiff.c,mercurial/mpatch.c和可能的mercurial/diffhelpers.c。
在谷歌也很難找到,結果Gnulib有diff module。這似乎足以滿足我想要差異庫的需求。但它似乎沒有補丁模塊。
- 1. 有沒有辦法使用C#壓縮分頁的.tiff文件?
- 2. 有沒有辦法確定Azure表中的現有分區?
- 3. 我有VS C++ Express。有沒有辦法創建.DEF文件?
- 4. Visual Studio沒有區分C頭文件和C++頭文件
- 5. 有沒有辦法切換JavaScript文件?
- 6. 有沒有辦法調試plist文件?
- 7. 有沒有辦法解壓JavaScript文件?
- 8. 有沒有辦法保護iCalender文件?
- 9. 有沒有辦法測試CSS文件?
- 10. 有沒有辦法讓C#中的所有文件名都沒有例外?
- 11. 有沒有辦法加載關於分辨率的CSS文件?
- 12. 有沒有辦法獲得部分上傳的文件?
- 13. 在Oracle中有沒有辦法讓列不區分大小寫?
- 14. 有沒有辦法區分一個案例類和一個Tuple?
- 15. 有沒有辦法區分哪個UIPopOver被解僱?
- 16. 有沒有辦法區分房間領導?
- 17. 有沒有辦法區分一個GUID和隨機數?
- 18. 有沒有辦法在Cloudera黑斑羚上顯示分區?
- 19. 有沒有辦法在vim中區分兩個寄存器?
- 20. 有沒有辦法讓rfind()不區分大小寫?
- 21. 有沒有辦法區分列表中的項目?
- 22. 有沒有辦法強制iOS模擬器區分大小寫?
- 23. KDB/Q有沒有辦法檢查分區表的完整性?
- 24. 有沒有辦法如何區分使用doxygen的枚舉組?
- 25. 有沒有辦法讓Perl標量不區分大小寫?
- 26. 有沒有辦法使localizable.strings不區分大小寫
- 27. PHP:有沒有辦法調用不區分大小寫的substr_count()?
- 28. 有沒有辦法監控c#文件的訪問?
- 29. 有沒有辦法解析serializeJSON文件在目標C
- 30. 有沒有辦法在C#中播放CCITT u-Law .wav文件?
在我看來,差異庫是相當普遍的,但谷歌尚未提出一個很好的答案。 – 2009-09-21 19:28:27
[在類似的帖子中爲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