差分 (diff)
2 つのテキスト間の違いを検出・表示する処理。バージョン管理やコードレビューの基盤技術。
差分 (diff) とは、2 つのテキストファイルやデータを比較し、追加・削除・変更された部分を検出・表示する処理です。Unix の diff コマンドに由来し、バージョン管理システムの基盤技術として広く使われています。
Git では diff アルゴリズムを使ってコミット間の変更を検出します。unified diff 形式では、追加行を +、削除行を - で表示します。Git 実践の書籍で diff の活用方法を学べます。
diff アルゴリズムの代表的なものに、Myers のアルゴリズム (最小編集距離)、patience diff (意味のある行を優先的にマッチング) などがあります。
文字数カウントの観点では、diff の出力には元のテキストに加えてメタ情報 (行番号、変更マーカー) が含まれるため、diff 出力の文字数は元のテキストより多くなります。テキストアルゴリズムの書籍も参考になります。