.NET用のまともなテキスト差分/マージエンジンはありますか? [閉まっている]

StackOverflow https://stackoverflow.com/questions/138331

  •  02-07-2019
  •  | 
  •  

質問

要件:

  • 無料、できればオープンソース
  • .NETマネージlangの1つで実装

Googleはこれらを見つけました:

編集:

アプリは使用せず、ライブラリのみにしてください。

役に立ちましたか?

解決

GoogleのDiff /パッチ/マッチ。 .NETから機能します。

更新、2010年10月17日 Google Diff / Patch / MergeコードはC#に移植されました。 COMコンポーネントは引き続き機能しますが、.NETから来ている場合は、.NETポートを直接使用します。

他のヒント

「Generic-Reusable Diff Algorithm in C#」」と思うCodeproject上のdiff / patch / mergeの.NET-Engineとして見つけることができます。自分でプロジェクトを作成しましたが、ほとんどのシナリオで私のニーズに合っています。アルゴリズムがパッチファイルを必要以上に大きくした場合、1つまたは2つの最悪のシナリオがあります。しかし、ほとんどの場合、私にとってはうまく機能します(サイズが> 30 MBのテキストファイル)。

現在、別のCodeproject-Projectをテストしています。 http:// www.codeproject.com/KB/applications/patch.aspx パッチを適用するためにMicrosoftのDLLを使用しているので、面白そうです。しかし、これらのDLLは管理されておらず、このプロジェクトはその一種のラッパーにすぎません。しかし、おそらくそれはあなたを助けることができます

編集: 別のプロジェクト DiffPlex が見つかりました: http://diffplex.codeplex.com/ これは、 .NET Diffing LibraryとSilverlightおよびHTML diffビューアの両方の組み合わせです。前述のとおり、 、DiffPlexはCodePlexがファイルの差分を生成するために活用するライブラリです。

GitSharpには、meyers diffに基づくdiffエンジンが含まれています。 Diff.Sectionsコレクションに基づいたシンプルなwpf diffビューアを実装するデモをご覧ください: http://www.eqqon.com/index.php/GitSharp#GitSharp.Demo

これまでの回答のどれも(おそらくGitSharp参照を除く)が3方向のマージを扱っていないため、最近Tony Garnock-Jonesのjavascript diff3実装を移植した人を助ける場合( synchrotron プロジェクト、Hunt and McIlroy 1976に基づく)C#へ。

これは、diffおよび3者間マージメソッドの単純な単一ファイルポートですが、標準のアルゴリズムであり、これまでのところ非常にうまく機能しています: https://gist.github.com/2633407

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top