2012-03-23 11 views
17

私はjavascript diffアルゴリズムの実装やライブラリを探しています。これはテスト済みで、任意のutf8テキストファイルで動作します。nodejsにはdiffライブラリやアルゴリズムがありますか?

私がこれまでに見つかったもののすべてのコーナーケースに失敗する(例えば、http://ejohn.org/projects/javascript-diff-algorithm/を言う)

(私の例ライブラリ内の文字列'__proto__'を含むファイルを使用してみてください。)

+1

http://toolbox.no.de/search?q=diff – fent

+0

DeaDEnDは、回答として私の問題を解決してください投稿してください。 – blueberryfields

+0

unixのために書かれたdiffツールがあります。それらを使用してください – Raynos

答えて

10

をインストールNPM - jsdiff

+1

アップストリームが再び先行しているので、リンクを更新しました。私はあなたがこれを投稿した時点で上流が後退していたと考えています。これは以前にリンクされたものです:https://github.com/NV/jsdiff –

3

があります私が次のページのjavascriptで書いたdiffアルゴリズムの実装です。

https://github.com/cubicdaiya/onp

これはnode.js.で実行されますさらに、次のページにnode.js用のC++アドオン・バージョンがあります。

https://github.com/cubicdaiya/node-dtl

あなたはNPMでこれをインストールすることができます。

$は多分これがお手伝いします-g DTL

3

私はgoogle diff match patchのファンクラブです。例hereを試すことができます。

diffの間の共通性のレベルを微調整するためのクリーンアップオプションがあります。私はそれがあまりにも積極的だと私はセマンティッククリーンアップオプションが好きではないが、10の値で効率クリーンアップは私のためにうまく動作します。

+0

これはJava、JavaScript、Dart、C++、C#、Objective C、Lua、Pythonで利用できるので、私はこれが好きです。言語にかかわらず、各ライブラリは同じAPIと同じ機能を備えています。 – elwarren

1

JavaScriptライブラリwikEd diffをご覧ください。 Unicodeと多言語対応があります。また、ブロック移動を検出して強調表示し、単語/文字に基づいています。 online too/demoを使用して、さまざまな設定をテストし、内部データ構造を調べることもできます。図書館のコードは完全にコメントされています。

関連する問題