Kit — テキスト差分比較

テキスト差分比較

2つのテキストを貼り付けると、追加・削除・変更された行を見つけ、変更された行の中では単語単位でどこが変わったかまで示します。処理はブラウザ内で完結するので、契約書の版や社内の設定ファイルのような、外に出せないテキストでも比較できます。

比較の条件
表示形式

左右にテキストを貼り付けると、ここに差分が出ます。

この処理はブラウザ内で完結します。ファイルはどこにも送信されません。

この差分ツールの考え方

行だけでなく、行の中まで見る

行単位の差分だけだと、読点をひとつ直した行も「まるごと差し替え」に見えます。ここでは変更された行の中をもう一度、単語単位で比較して、実際に変わった箇所だけを強調します。日本語は空白で区切られないため、英数字は語のまとまりで、それ以外は1文字ずつ、という分け方をしています。

テキストが外に出ない

契約書の新旧版、社内の設定ファイル、未公開の原稿。オンラインの差分サイトの多くは貼り付けた内容をサーバーへ送るので、比較した時点で社外に出たことになります。このツールは送信そのものが発生しません。

色だけで区別しない

追加は「+」と下線、削除は「−」と取り消し線を必ず併記しています。色の見分けがつきにくい環境でも、白黒で印刷しても、どちらが追加でどちらが削除かが分かります。

結果の読み方

「行単位」と「単語単位」は何が違う?行単位の比較は、どの行が増えた・減った・置き換わったかを判定します。単語単位の比較は、置き換わった行の中でどの語が変わったかを示します。このツールは両方を行い、行単位の結果の上に単語単位の強調を重ねています。
全部の行が差分になってしまうのはなぜ?典型的な原因は改行コードの違いです。Windowsは CRLF、macOS/Linuxは LF を使うため、内容が同じでも1行残らず違う行として扱われます。このツールは比較前に改行コードを揃えるので、この理由だけで全行が差分になることはありません。それでも全行が差分になる場合は、インデントがタブとスペースで入れ替わっている、文字コードの変換で全角空白が混ざった、といった可能性を疑ってください。
類似度の%は何を計算している?変更のなかった行数を2倍し、両方の総行数で割った値です。まったく同じなら100%、共通する行がなければ0%になります。行単位の指標なので、1行の中の小さな修正はこの数字にほとんど影響しません。
「空白の違いを無視」はどこまで無視する?行の中のすべての空白(半角スペース、全角スペース、タブ)を取り除いてから、同じ行かどうかを判定します。インデントを付け替えただけの差分を消したいときに使います。行末の余分な空白だけを消したい場合は「行末の空白を無視」のほうを使ってください。なお、無視の設定は判定にだけ使われ、画面に出るのは貼り付けたままのテキストです。

よくある質問

行数の上限はありますか?

片側 5,000 行までです。超えた場合は、先頭だけを比較するのではなく処理を止めて警告します。一部だけの結果を「全体の差分」と取り違えるほうが危険だからです。それより大きいものは git diff などのコマンドラインツールが向いています。

貼り付けたテキストは保存されますか?

保存されません。すべてブラウザの中だけで処理していて、サーバーへは何も送っていません。ページを閉じると消えます。

unified diff 形式は何に使いますか?

「---」「+++」「@@」の付いた、git や patch コマンドが扱う標準的な差分形式です。コピーしてレビューのコメントに貼ったり、パッチとして保存したりできます。変更箇所の前後3行が文脈として付きます。

Word や PDF のファイルを直接比較できますか?

できません。テキストを貼り付ける方式なので、いったんテキストとしてコピーしてください。太字や色などの書式の違いは比較対象になりません。

「並べて表示」と「まとめて表示」はどう使い分ける?

並べて表示は、左右の見比べや、置き換わった行の対応を確認するのに向いています。まとめて表示は1列に並ぶため、画面の狭い端末や、変更箇所を上から順に追いたいときに向いています。中身はどちらも同じ比較結果です。