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でのコードレビューの標準ビューです。開発者はプルリクエストのレビュー、デプロイ前の設定ファイルの変更比較、ドキュメントの変更監査に使用します。両カラムが水平スクロールなしで全行を表示できるワイドモニターで最適に機能します。

試してみる — Diff Viewer

フルツールを開く