テキスト差分チェッカー

次へ:変更後のテキスト

契約書の2つのバージョン間で変わった3つの単語、CSVエクスポートに紛れ込んだ余分なカンマ、設定ファイルのどこが具体的に変わったのか、こうした違いは数百行を超えると目視では到底見つけられません。テキストの2つのバージョンを貼り付けるだけで、この差分チェッカーが追加箇所を緑、削除箇所を赤で示し、同じ行内で変わった文字や単語もハイライトします。

差分が生成される仕組み

  1. 1

    2つのバージョンを貼り付ける

    まず元のテキストを貼り付け、次に比較したい変更後のテキストを貼り付けます。

  2. 2

    Myers差分アルゴリズムを実行

    Gitが使用しているのと同じアルゴリズムで、最小限の編集操作の列を生成します。

  3. 3

    行が揃えられる

    変更のない行は左右で隣り合わせに保たれ、挿入・削除された行は反対側に空白スペースが確保されます。

  4. 4

    行内のハイライト

    変更された行の中では、変わった文字や単語だけが色付けされるため、どこが変わったのかを正確に確認できます。

差分の色の意味

色 意味
赤 削除された行(元のテキストにだけある行)
緑 追加された行(変更後のテキストにだけある行)
濃い赤・濃い緑 編集された行の中で変わった文字や単語
白 変更なし(文脈)

よくある使い方

  • 契約書の改訂、署名前に、合意のv3とv4の間でどの条項が変わったかを正確に確認できます。
  • 設定ファイルの監査、本番環境へプッシュする前に、チームメイトがnginx.confに加えた変更を確認します。
  • 翻訳のQA、同じ文字列の2つのローカライズを並べて、抜けた句読点を見つけます。
  • CSVエクスポートの比較、先週と今週のデータダンプで、どの行が異なるかを特定します。
  • Gitを使わないコードレビュー、リポジトリを用意したくないときの、手早い1回限りの比較に。

きれいな差分を得るためのヒント

  • 改行コードの違いは変更として扱われません。 Windows(CRLF)とUnixやmacOS(LF)の改行は同じものとして比較されるため、事前に変換する必要はありません。
  • 比較の前に両方の末尾の空白を取り除きましょう。そうしないと、目に見えない空白も変更として記録されます。
  • JSONやYAMLの場合は、まず両方を同じインデントで整形してください。再整形すると本当の変更が隠れてしまいます。
  • 順序が重要でない2つのリスト(依存関係の一覧など)を比較するときは、アルファベット順に並べ替えましょう。

行単位の差分の限界

行単位の差分は、コードや設定ファイルには最適です。一方で文章には不向きで、1つの文を2段落分移動させると「移動」ではなく「削除」と「挿入」の2つの変更として表示されてしまいます。原稿の編集には、単語単位や文単位の差分のほうがすっきりした結果になります。

よくある質問

はい。テキストは言語や文字の種類にかかわらず行単位で比較されるため、中国語、日本語、アラビア語、タイ語、アクセント付きの文字、絵文字にも対応しています。編集された行の中では変わった単語がマークされますが、単語の間を空白で区切らない中国語、日本語、タイ語では、変わった文字がマークされます。

1つのテキストにつき最大20,000行、500,000文字までです。これを超える場合や、2つの長いテキストの違いが大きすぎて行単位で比較できない場合は、ページが固まる代わりにメッセージが表示されます。それぞれのテキストの範囲を絞って比較するか、git diffやパソコン用の差分ツールを使ってください。比較結果が5,000行を超える場合、ページには最初の5,000行が表示されますが、コピーしたunified diffにはすべての変更が含まれます。

「空白を無視」オプションをオンにすると、インデントや末尾スペースの変更だけの差異をスキップできます。整形ツール(Prettier、Black)が生み出す気にしなくてよいノイズを取り除くのに便利です。

いいえ。2つのテキストはブラウザー内にとどまります。比較はこのページ上で行われ、当社のサーバーに送信されることも、ページのリンクに追加されることもありません。ステップ間では、タブを閉じるか[やり直す]を選ぶまで、このブラウザーのタブにのみ保持されます。

関連ツール

このツールは他の言語でも利用できます