テキスト差分比較
2つのテキストを行ごとに比較し、何が追加され、何が削除され、何が変わっていないかを正確に確認できます。
すべてブラウザ内で動作します。アップロード、記録、保存は一切行いません。
テキストの2つのバージョンを貼り付けると、その間で何が変わったかを行ごとに確認できます。比較はブラウザ内で行われ、どちらのテキストもどこにも送信されません。
仕組み
2つのテキストを行に分け、最長共通部分列で対応づけます。バージョン管理システムのdiffと同じ考え方です。両方に同じ順序で現れる行は変更なしとして表示され、それ以外はすべて追加か削除になります。
まず改行コードを統一するので、WindowsとLinuxで保存した同じファイルは、すべての行が変わったかのようにではなく、同一として比較されます。置き換えられた行は、削除とそれに続く追加として表示されます。実際にそうだからです。
先頭と末尾の同一部分は本格的な比較の前に取り除かれます。そのため、長いファイルの1行だけの変更なら一瞬で終わります。負荷が大きいのはほとんど共通部分のない2つのテキストで、一定の大きさを超えるとタブをフリーズさせる代わりに、ツールがそのことをお知らせします。
例
| ケース | 入力 | 結果 |
|---|---|---|
| 3行のうち1行の変更 | alpha / beta / gamma against alpha / BETA / gamma | 1 added, 1 removed |
よくある質問
テキストがブラウザの外に送られることはありますか?
ありません。比較はJavaScriptでローカルに実行され、アップロードも記録も保存もされません。このツールには共有リンクもありません。リンクにすると2つのテキストをURLに含める必要があり、ブラウザの履歴やサーバーのログに残ってしまうからです。
なぜ単語ではなく行で比較するのですか?
人が比較するもの、つまり設定ファイル、コード、契約書のdiffを読みやすくするのは行単位の比較だからです。折り返し位置を変えた段落を単語単位で比較すると、ほぼすべての単語が変更扱いになり、何もわかりません。
「空白を無視」では具体的に何が無視されますか?
連続するスペースとタブは1つのスペースにまとめられ、各行の先頭と末尾の空白は削られます。そのため、ブロックのインデントをやり直しても書き換えとは表示されません。空白を完全に取り除くわけではないので、「a b」と「ab」は異なる行のままです。
サイズに上限はありますか?
片側5,000行までで、実際に異なる部分は各側で最大1,200行までです。無関係な2つのテキストで効いてくるのは2つ目の上限で、ツールはメモリを使い果たす前に比較を断ります。
知っておきたいこと
- 比較はブラウザ内で実行されます。貼り付けた内容は送信も記録も保存もされず、サーバーに比較を依頼することも一切ありません。
- そのため、このツールにはJavaScriptが必要です。JavaScriptがなければ、どこか別の場所で比較されるのではなく、比較そのものが行われません。