プログラマーがGitなどのバージョン管理システムを通さず、手元にある古いソースコードと修正版のコードの間で、どの関数が書き換えられたかを即座に確認したいとき。
ライターや編集者が、クライアントから戻ってきた修正済みの原稿と、自分が送信した元の原稿を見比べ、どこが削られどこが追加されたかを網羅的にチェックしたいとき。
法務担当者が、過去に締結した標準的な契約書面と、新しく提示された修正案のテキストを突き合わせ、条文の細かい言い回しの違いや抜け漏れを見落としなく探したいとき。
全角スペースと半角スペースは別の文字として判定されるため、意図しない差分が多く表示される原因になります。比較の精度を高めるには、事前に空白文字の入力を揃える必要があります。
行の順番が大きく入れ替わっている場合、アルゴリズムの仕様上、実際の編集意図とは異なる部分が変更としてハイライトされることがあります。
Q. 文字単位の比較と行単位の比較はどのように切り替わりますか?
一般的には行単位で大まかな差分をとった後、同一行内の変更点がある場合に文字単位や単語単位での細かなハイライトを行うアルゴリズムを採用しています。表示モードの切り替えボタンがある場合は、そちらから変更可能です。
Q. スペースやタブの違いも差分として検出されますか?
はい、検出されます。プログラムのインデントなどに使われる半角スペースやタブ、全角スペースの違いも別の文字として扱われるため、空白の差異も色分け表示の対象になります。
Q. 改行コードの違い(CRLFとLF)は結果に影響しますか?
改行コードが混在している場合、システム側で自動的に正規化されない限り、行の不一致として判定されることがあります。WindowsとMac/Linuxの間で作成されたファイルを比べる際は注意が必要です。
Q. 非常に長大なテキストや数十万行のファイルを読み込めますか?
文字数が多すぎる場合、差分計算の処理に時間がかかったり、メモリ不足によりブラウザの動作が一時的に重くなったりすることがあります。数千行程度を目安に分割して比較することをおすすめします。
Q. 日本語と英語が混ざった文章でも正確に差分を取れますか?
はい、文字コードとして正しく認識されるテキストであれば、日本語と英語が混在していても問題なく比較できます。ただし、単語の区切りがない日本語は、英語に比べて文字単位の細かい一致判定が複雑になります。