テキスト比較(差分チェック)
2つのテキストの変更点を、行単位・単語単位で比較。左右に並べて、またはunified diff形式で表示します。
テキスト比較 — 2つの文章の違いを見つける
左に元のテキスト、右に変更後のバージョンを貼り付けると、すべての違いがすぐに表示されます。削除された行は赤、追加された行は緑で示され、変更された行の中では入れ替わった単語まで正確にわかります。契約書や記事はもちろん、ソースコード、設定ファイル、ログ出力にも使え、どちらのテキストも最初から最後までブラウザーの中にとどまります。
2ページの文書から変わった数字を目で探すのは、時間がかかるうえに確実ではありません。差分チェックツールならミリ秒単位で終わり、移動したカンマも、40から45に変わった価格も見逃しません。
2つのテキストを比較する手順
- 元のバージョンを元のテキストに、新しいバージョンを変更後のテキストに貼り付けます。
- 入力に合わせて比較結果が下に表示され、追加行と削除行の数も示されます。
- 左右に並べるか統合表示を選びます。空白や大文字・小文字の違いが気にならない場合は、空白を無視や大文字・小文字を無視にチェックを入れます。
- unified diff形式でコピーを押すと、変更内容をパッチとして持ち出せます。
結果の読み方
| 表示 | 意味 |
|---|---|
| 左側だけにある赤い行 | その行は削除された |
| 右側だけにある緑の行 | その行は追加された |
| 左右に並んだ赤い行と緑の行 | その行は変更された。印の付いた単語が変更箇所 |
| 行数が書かれたグレーのバー | 変更箇所を見やすくするために隠された、変更のない行 |
変更箇所と前後3行のみは初期状態でオンになっているため、2か所だけ編集された長いファイルでは、コードレビューと同じように、その編集箇所がわずかな前後の文脈とともに表示されます。両方のテキストを全文表示したい場合はチェックを外してください。
左右に並べる表示と統合表示
左右に並べるは、2つのバージョンをそれぞれの行番号付きで並んだ列に表示します。文章を読むときや、変更された行を元の行と見比べるときに最もわかりやすい表示です。統合表示は1列で、削除行にマイナス、追加行にプラスの印を付けます。Gitや多くのコードレビューツールが差分を表示するのと同じ形式で、小さな画面でも横幅をとりません。
単語単位、文字単位、行単位
最初に行どうしが比較されます。削除された行と追加された行が似ている場合は、それらを隣に並べてもう一度比較します。その細かさを決めるのが行内の差分を強調です。単語は文章やほとんどのコードに向き、文字はIDやハッシュの中で1文字だけ変わった数字や英字を捉え、オフでは行全体だけを表示します。共通点のない行どうしを無理に組にすることはないため、無関係な削除行と無関係な追加行が単語単位で比較されることはありません。
気にしなくてよい違いを無視する
- 空白を無視は、インデント、スペース、タブだけが異なる行を同じとみなします。コードを整形し直した後や、エディターがタブをスペースに変換してしまった場合に使います。
- 大文字・小文字を無視は、大文字と小文字を同じものとして扱います。SQLのキーワードや、大文字・小文字の使い方を変えて打ち直したテキストに便利です。
- 改行コードの違いは変更として数えません。WindowsとUnixの改行は比較前にそろえられます。
仕組み
比較には、Gitが標準で使っているのと同じMyersアルゴリズムを使っています。一方のテキストをもう一方に変える追加行と削除行の最小の組み合わせを求めるため、移動した行の長いリストではなく、実際に編集された箇所が結果に表れます。2つのテキストで先頭と末尾に共通する行はあらかじめ除外されるので、長いファイルの2つのバージョンもすばやく比較できます。20,000行のファイルにある1か所の変更なら、一瞬で見つかります。
パッチを作る
unified diff形式でコピーは、--- と +++ のヘッダー、そして3行の文脈付きの @@ ハンクを持つ標準的なパッチを作ります。ファイルに保存すれば、ヘッダーのファイル名が手元のファイルと一致している限り、git apply changes.diff や patch -p0 < changes.diff で適用できます。
テキストは外部に出ません
どちらのテキストもページ内のJavaScriptで比較されます。何もアップロードされず、保存もされません。契約書の草稿、未公開のコード、個人データを含むものを比較するときに必要なのは、まさにこの点です。
関連ツール
2つのJSONファイルを比較するなら、まず両方をJSON整形ツールで整形してキーの順序とインデントをそろえ、それからここで比較してください。内容を見ずに2つのファイルがバイト単位で同一かどうかを確かめたいときは、ハッシュ生成ツールでチェックサムを比べましょう。