差分チェッカー

2つのテキストを、行単位、単語単位、文字単位で比較します。インラインまたは左右並べて表示でき、大文字小文字や空白を無視し、ユニファイド diff のパッチを出力できます。

すべてブラウザ内で実行されます。データがアップロードされることはありません。

関連ツール

すべて表示

差分チェッカーとは?

元のテキストと変更後のテキストを比較し、追加された部分と削除された部分をハイライトします。行、単語、文字の単位で比較でき、結果をインラインまたは左右に並べて表示し、大文字小文字や空白の違いを無視し、ユニファイド diff(パッチ)を出力できます。

差分チェッカーの使い方

  1. 元のテキストを左に、変更後のテキストを右に貼り付けます。
  2. 比較の単位(行、単語、文字)と表示を選びます(左右に並べる表示は行モードで使えます)。
  3. 違いが重要でない場合は、大文字と小文字を無視や空白の違いを無視にチェックします。
  4. 追加・削除された単位の概要を確認し、ユニファイド diff(パッチ)を開いてパッチをコピーまたはダウンロードします。

例

入力
Original: a / b / c  →  Changed: a / B / c / d (one item per line)
出力
2 line(s) added · 1 line(s) removed
- b
+ B
+ d

差分チェッカーを使うべき場面

契約書、記事、設定ファイル、コードの断片の編集内容の確認や、リストの2つのバージョンの間の変更点の確認に使えます。リポジトリ全体やバイナリファイルには、Git やデスクトップの差分ツールを使ってください。2つのテキストは、ブラウザ内に留まります。

差分チェッカーの仕組み

比較には diff ライブラリ(jsdiff)を使います。このライブラリは Myers の O(ND) 差分アルゴリズムを実装しており、2つのトークン列の間の最短の編集手順を求めます。行モードは行でトークン化し(大文字小文字と前後の空白を任意で無視)、単語モードは単語と空白で、文字モードは文字でトークン化します。削除された部分は赤の取り消し線、追加された部分は緑で表示されます。左右並べの表示では、削除された行と追加された行のブロックが行にまとめられます。パッチは、前後3行のコンテキストを持つユニファイド形式で createTwoFilesPatch により生成されます。

一般的な使用例

  • 文書の2つのバージョン間の変更を確認する
  • 設定ファイルや環境変数を比較する
  • 同僚が貼り付けたテキストで何を変えたか確認する
  • 2つのコードの断片からパッチファイルを作る
  • 長いリストの小さな違いを見つける

よくある質問

どのアルゴリズムが使われていますか?

jsdiff ライブラリによる Myers の差分アルゴリズムです。Git や GNU diff が使うのと同じ系統のアルゴリズムです。

変更された行が削除と追加として表示されるのはなぜですか?

行モードは行を単位として扱うため、何かが変わると別の行になります。行の内部で何が変わったかを正確に見るには、単語モードまたは文字モードに切り替えてください。

テキストはアップロードされますか?

いいえ。2つのテキストはブラウザ内で比較されます。

パッチを Git で適用できますか?

ユニファイド diff はファイル名に original.txt と changed.txt を使います。ファイル名を調整したあと、patch や git apply で適用できます。

他のカテゴリを見る