18.1.2 ディレクトリ構造の変化の処理
diff と patch は、ディレクトリ構造の一部の変化を扱えません。たとえば、一方のディレクトリツリーに「D」というディレクトリとその配下のファイルがあり、もう一方には同じ「D」という名前のファイルがあるとします。「diff -r」は、patch がそのディレクトリの部分ツリーをファイルへ変換するために必要な情報を十分に出力しません。
パッチファイルにファイルの内容全体を含めずに、そのファイルが削除されたことを指定する方法が必要です。また、patch にファイル名が変更されたことを伝える方法も必要です。diff がその情報を生成できなくても構いません。内容が変わっていなくても、patch にファイルのタイムスタンプが変わったことを伝える方法が必要です。
これらの問題は、diff の出力形式を拡張してディレクトリ構造の変化を表し、patch もその拡張を理解するように拡張することで解決できます。