2ファイル比較のためのサイドバイサイドDiffビュー
サイドバイサイドDiffビューが2つのテキストバージョンを並列カラムに表示する仕組みを解説。行レベルの比較、追加・削除のハイライト、同期スクロールについて学びます。
Basic Diff
詳細な説明
サイドバイサイドDiffビュー
サイドバイサイドDiffビューは、2つのテキストファイルを比較する最も直感的な方法の一つです。元のバージョン(左)と変更後のバージョン(右)を並列カラムに表示し、色分けされたハイライトで変更箇所を即座に確認できます。
サイドバイサイドDiffの仕組み
Diffアルゴリズムはまず2つの入力間の一致する行を特定し、各行を以下のように分類します:
- 変更なし — 両方のバージョンに存在し、同じ行に表示
- 削除 — 元のバージョン(左)にのみ存在し、赤でハイライト
- 追加 — 変更後のバージョン(右)にのみ存在し、緑でハイライト
- 変更 — 両方に存在するが内容が異なり、インラインの文字レベルマーカーでハイライト
元のバージョン(左) 変更後(右)
───────────────── ─────────────────
function greet() { function greet() {
return "hello"; → return "Hello, World!";
} }
同期スクロール
サイドバイサイドビューでは、対応する行が常に水平に揃うように両パネルが一緒にスクロールします。片側に行のブロックが追加された場合、反対側に空白のプレースホルダー行(「ファントム行」)が挿入されて配置が維持されます。
文字レベルのハイライト
変更された行内で、優れたDiffビューアーはさらに変更された特定の文字をハイライトします。例えば、"hello"が"Hello, World!"に変更された場合、行全体ではなく異なる文字のみがマークされます。
行番号
各パネルは独自の行番号を維持します。挿入や削除により行数が異なるため、これは重要です。行番号により、コードレビューやバグレポートで特定の変更を素早く参照できます。
サイドバイサイドの使用場面
サイドバイサイドDiffが最適な場合:
- 十分な水平スペースがあるワイドスクリーンを使用している
- 変更がファイル全体に散在している
- コンテキストのために両方のバージョンを同時に確認する必要がある
- コードレビューで旧ロジックと新ロジックを比較したい
ユースケース
サイドバイサイドDiffは、GitHub、GitLab、Bitbucketでのコードレビューの標準ビューです。開発者はプルリクエストのレビュー、デプロイ前の設定ファイルの変更比較、ドキュメントの変更監査に使用します。両カラムが水平スクロールなしで全行を表示できるワイドモニターで最適に機能します。