* 入力内容はサーバーに送信されません。すべての計算はブラウザ上で実行されます
テキストA
テキストB

Diffとは?

Diffは2つのテキスト間の構造化比較で、追加されたもの、削除されたもの、変更されていないものをハイライトします。開発者はコード変更のレビュー、設定のドリフト監査、2つのバージョンの文書の照合に毎日使っています。

このツールはjsdiffライブラリを使ってブラウザ上ですべての比較を実行します。貼り付けやアップロードした内容はサーバーに送信されません。

使い方

2つの入力をオリジナルと変更後のフィールドに貼り付けるかドロップします。512KB未満の入力では自動的にDiffが計算されます。それ以上の入力では比較ボタンが表示されます。

横並びとインライン表示を切り替え、必要に応じて空白や大文字小文字を無視できます。JSONをフォーマットして比較前に正規化することも可能です。

アルゴリズム

jsdiffによるMyers Diffアルゴリズムをベースにしています。まず行レベルのDiffを計算し、隣接する削除行と追加行のペアに対して単語レベルの2回目のパスを実行して、実際に変更された単語をハイライトします。GitHubのプルリクエストと同じ方式です。

一般的なユースケース

2つの設定ファイル(JSON、YAML、.env)を比較して環境間のドリフトを発見する。

コミット前にコード変更をレビューする。特にエディタ外で作業している時に便利。

2つのバージョンのドキュメント、ログ、クエリ結果を横並びで照合する。

制限事項

テキストのみのDiffです。結果を意味のあるものにするため、バイナリファイルは検出して拒否します。

入力は各側5MBが上限です。512KBを超える入力はバックグラウンドWeb Workerで実行されます。ページは応答し続けますが、非常に大きな入力ではDiffに比例して時間がかかります。

行末(CRLF vs LF)と末尾の空白の違いは正規化されるため、変更として表示されることはありません。