テキスト差分チェッカー
2 つのテキストを行ごとに比較し、追加・削除された行と各行の中で変わった箇所を確認できます。結果は unified diff 形式でコピーできます。
ツールをここにピン留めできます。このブラウザに保存されます。
ツールをピン留めすると、そのステッカーがここに並びます。
2 つのテキストを行ごとに比較し、追加・削除された行と各行の中で変わった箇所を確認できます。結果は unified diff 形式でコピーできます。
比較では、1 つ目のテキストを 2 つ目のテキストに変えるために削除する行と追加する行の、最も短いリストを探します。このリストを求める問題は、最長共通部分列、つまり両方のテキストに同じ順序で現れる最も長い行の並びを求める問題と同じです。このツールは、GNU diff の基盤であり Git のデフォルトでもある、Eugene Myers が 1986 年に発表したアルゴリズムを、線形空間版で使用しています。そのため、メモリ使用量はテキストのサイズに比例する範囲に収まります。
変更されたブロックの同じ位置に削除行と追加行がある場合、その 2 行を単語単位で比較し直し、異なる単語をハイライトします。2 行の共通部分が少ない場合は、単純な削除と追加として表示します。ほぼ全体をハイライトしても何も伝わらないからです。
− の付いた行は元のテキストにだけ、+ の付いた行は変更後のテキストにだけ存在します。したがって、変更された行は削除と追加の 2 回現れます。2 列の数字は、元のテキストと変更後のテキストでの行番号です。意味を表すのは記号で、色はそれを補うだけです。
統合表示ではすべてを 1 列にまとめます。これはパッチファイルと同じ並び順です。左右に並べる表示では、それぞれのテキストを別の列に置き、対応する行の高さをそろえます。
unified diff 形式でコピーすると、diff -u や git diff と同じ形式が出力されます。変更は前後 3 行の変更のない行を文脈として含むハンクにまとめられます。各ハンクは @@ -1,7 +1,8 @@ のようなヘッダーで始まり、これは「元のテキストの 1 行目からの 7 行が、変更後のテキストの 1 行目からの 8 行に対応する」という意味です。
\ No newline at end of file という行も形式の一部です。テキストが改行で終わっていない場合に現れ、パッチでファイルを正確に再現できるようにします。ページ上の表示ではこの違いを無視します。見た目が同じ最終行を変更ありと表示すべきではないからです。
いいえ。比較はブラウザのタブ内の JavaScript で行われます。このツールが貼り付けた内容を含むネットワークリクエストを送ることはなく、サイトのセキュリティポリシーにより、ほかのホストへのリクエストはブロックされます。
たいていは目に見えない違いです。行末のスペース、スペースの代わりのタブ、ノーブレークスペース、あるいは 1 文字ではなく 2 文字で保存されたアクセント付きの文字などです。空白の違いを無視するオプションをオンにすると、最初の 3 つの可能性を除外できます。
はい。ファイルに保存し、変更するファイルの名前を指定して patch を実行します。例:patch notes.txt changes.diff。無視するオプションをオンにした状態でコピーした場合、無視された違いは diff に含まれないため、パッチを当てたファイルは変更後のテキストと完全には一致しません。
数千行程度のテキストなら 1 秒もかからずに比較できます。ページに表示されるのは最大 5,000 行ですが、コピーした diff には常にすべての変更が含まれます。共通部分がほとんどない非常に長い 2 つのテキストでは探索が途中で打ち切られ、結果が必要以上に長くなることがあります。
専用のウィンドウで開き、オフラインでも使えます。
インストールするには、共有ボタンをタップして「ホーム画面に追加」を選びます。