100% ローカル — データがブラウザの外に出ることはありません

テキストの差分を比較|チケットにそのまま貼れるパッチが出ます

二つのテキストを行ごとに比べ、統一差分を作ります。git が出すのとまったく同じ形をしているので、チケットにもレビューにもチャットにも、そのまま貼り付けて使えます。

高速 プライベート Cookieゼロ

変更前

変更後

差分

このツールの動作

二つの文章が入り、統一形式の差分が出ます。

version: 1          version: 2
name: demo          name: demo
port: 8080          port: 8080
                    debug: true
@@ -1,3 +1,4 @@
-version: 1
+version: 2
 name: demo
 port: 8080
+debug: true

比較には Myers のアルゴリズムを使います。git diff の後ろにあるものと同じです。ですから結果は、最初に見つかった変更ではなく、いちばん小さな変更の集まりになります。同じ文章どうしなら結果は空で、それが知りたかった答えです。

出力の読み方

  • @@ -1,3 +1,4 @@ — 変更の位置です。左は1行目から三行、右は1行目から四行。
  • - — その行は最初の文章にあり、二つめには無い。
  • + — その行は二つめにあり、最初には無い。
  • 先頭の空白 — 変わっていない行で、文脈として示されます。前後に三行ずつ、Git の既定と同じです。

同じに見える二行が違うとき

-a
+a

見て分かるものは何もありませんが、同じ行ではありません。よくある犯人は、行末の空白、片方だけのタブ、そして Unix の \n に対する Windows の \r\n です。二台の機械で編集されたファイルは、三つとも集めています。比較は文字そのものを読むので、見せられない違いを告げることになります。

Unix の cat -A は行末に $ を、復帰には ^M を表示します。たいていの編集ソフトには「空白を表示」の切り替えがあります。どちらでも、違いは一瞬で目に見えるようになります。

しないこと

  • 単語単位の強調。 一文字変われば、その行ぜんぶに印が付きます。
  • 改名や移動の検出。 移された固まりは、移動ではなく、削除と追加として読まれます。
  • 三方向のマージ。 二つの文章を比べるだけで、まとめはしません。
  • \ No newline at end of file の表示。 末尾の改行がある文章と無い文章の違いは、空行がひとつ加わった形で現れます。同じことを、より素朴に伝えているだけです。

プライバシー

すべての処理はブラウザ内のJavaScriptだけで完結します。データがアップロードされることはないため、機密情報でも安心して利用でき、オフラインでも動作します。

よくある質問

同じに見える二行が `-` と `+` で出ます。なぜですか。
違いが目に見えないからです。行末の空白、片方だけタブになっている字下げ、Windows の改行(`\r\n` と `\n`)は、見た目を変えずに行を変えます。比較は文字そのものを見ます。Git と同じです。見つけるには、Unix なら `cat -A` に通すか、編集ソフトの「空白を表示」を入れてください。
`@@` の行は何ですか。
変更の位置です。`@@ -1,3 +1,4 @@` は「左は1行目から三行、右は1行目から四行」という意味です。その下では、`-` で始まる行が取り除かれた行、`+` が加わった行、先頭が空白なら変わっていない行です。変更の前後には三行ずつの文脈が残ります。Git の既定と同じです。
変わった単語を目立たせますか。
いいえ。比較は一行ずつです。一文字変えれば、その行がまるごと「取り除かれ、加えられた」として出ます。統一形式の差分とはそういうもので、だからこそレビューの道具にそのまま貼れます。単語単位の表示は別のもので、別の道具です。

関連ツール