34

CまたはC++のdiffライブラリを探しています。diffUnixツールをまたはと組み合わせて使用​​できることは知っていますが、system本当にexecライブラリが必要です。patchUnixツールのように、ライブラリがパッチも実行できると便利です。

4

6 に答える 6

24

私は最終的に、良い解決策を見つけたと思います:

DTL-差分テンプレートライブラリ---チュートリアル

パッチをサポートしています。それを見つけるためにGoogleに「diff.cpp」と入力する必要がありました。うまくいけばうまくいきます!

于 2009-09-24T17:00:19.380 に答える
13

Google Diff、Match、Patchライブラリが必要なよう です。

于 2009-09-20T18:43:15.863 に答える
3

これは、「次の出版物で説明されているように、Hirschberg線形空間の改良によるSES/LCSのソリューション」の実装です。

E.マイヤーズ、「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 に答える
3

Mercurialの一部であるものがあります。Python拡張機能として設計されたCコードとして存在しますが、おそらくかなり簡単に抽出できます。バイナリ差分もできると思います。

関連する.cファイルはmercurial/bdiff.cmercurial / mpatch.c、場合によってはmercurial/diffhelpers.cです。

于 2009-09-29T04:39:38.887 に答える
2

Subversionにはライブラリが含まれていますlibsvn_diff

于 2009-09-28T03:37:45.983 に答える
1

また、Googleではほとんど見つけることができませんが、Gnulibにはdiffモジュールがあることがわかりました。これは、私がdiffライブラリを求めていたものには十分なようです。ただし、パッチモジュールがないようです。

于 2011-09-12T04:55:24.947 に答える