guides/
diff ガイド
テキスト比較がどのように動くのか、結果をどう読み、どのオプションをいつ使うのかをまとめました。
01 · guide/how-diff-works
diff はどうやって差分を見つけるのか — LCS と Myers アルゴリズム
2つのテキストの違いを見つける diff の仕組みを、最長共通部分列(LCS)、編集スクリプト、Myers の O(ND) アルゴリズム、行単位と単語単位の比較を中心にわかりやすく説明します。
02 · guide/diff-algorithmsMyers・Patience・Histogram — diff アルゴリズムの比較
git diff の --diff-algorithm オプション(myers、minimal、patience、histogram)がそれぞれどう動き、なぜ結果が変わるのかを例とともに比較します。
03 · guide/read-unified-diffunified diff(patch)の読み方 — コードレビューのための手引き
git diff や patch ファイルの --- +++ ヘッダー、@@ ハンクヘッダーの数字、文脈行、No newline at end of file の表示、diff --git 拡張ヘッダーを例とともに1つずつ読み解きます。
04 · guide/whitespace-options空白無視オプションの違い — diff -b、-w、-B、-Z と git の対応
行末の空白の無視、空白の量の無視(-b)、すべての空白の無視(-w)、空行の無視(-B)、大文字小文字の無視の正確な違いを、GNU diff・git のオプションと例で比較します。
05 · guide/compare-documents文書・契約書の比較 — 2つのバージョンの違いを漏れなく見つける方法
下書きと修正版、送付した契約書と戻ってきた契約書をテキストで比較する手順とコツ。文字単位の比較、PDF の改行の整え方、契約書の確認チェックリストをまとめました。
06 · guide/json-diffJSON を比較する方法 — キー順のソートと正規化
2つの JSON を比較するとき、キーの順序・インデント・数値表記の違いで生じる見かけだけの差分をなくす方法と、配列の順序、大きな整数、JSON Patch との違いを説明します。
07 · guide/line-endings改行コード(CRLF・LF)と見えない差分 — すべての行が変わったと表示されるとき
見た目は同じなのに diff ですべての行が違うと表示される原因となる CRLF・LF の改行、ファイル末尾の改行、BOM、タブとスペース、特殊な空白、Unicode 正規化と、その解決方法をまとめました。