ブログに戻る
Reference 2026-04-18

Diffアルゴリズム解説: Myers, Patience, Histogram

git、IDE、レビューツールが毎日見る差分を計算する方法。

すべてのコードレビューとマージはdiffアルゴリズムに依存します。

Myers Diff

gitやvimなどのデフォルト。O((N+M)D)で最短編集スクリプトを見つける。

Patience Diff

git diff --diff-algorithm=patience

両ファイルに一度だけ現れる固有行をアンカー。関数移動がきれい。

Histogram Diff

patienceの改良版。

git config --global diff.algorithm histogram

単語/文字diff

git diff --word-diff

構造化データ

  • jd (JSON)
  • difft (AST ベース)