パッチファイルの作成メモ

パッチの作成

diff -c FROM_FILE TO_FILE > PATCH_FILE  // ファイル単位
diff -c FROM_DIRECTORY TO_DORECTORY > PATCH_FILE // ディレクトリ単位
diff -cr FROM_DIRECTORY TO_DORECTORY > PATCH_FILE  // -r 再帰
diff -crN FROM_DIRECTORY TO_DORECTORY > PATCH_FILE // -N 追加/削除ファイルも記録

パッチの適用

patch < PATCH_FILE  // ファイル単位
patch -p0 -d . < PATCH_FILE // ディレクトリ単位
patch -p -d . -E < PATCH_FILE // 追加/削除ファイルも再現
  • p オプションは差分作成時の相対ディレクトリを有効にします (-p がないと全てのファイルがカレントディレクトリにあると仮定されます)。 -p の後ろの 0 は差分ファイルに記録されている相対ディレクトリを全て有効にするという意味です。 1、2 と増えていくと、記録された相対ディレクトリが頭から1つづつ削られます (例 : -p1 だと usr/local/src → local/src、-p2 だと usr/local/src → src)。
  • d オプションはパッチを適用するディレクトリを指定します (カレントディレクトリに適用するなら無くても良いです)。

diff/patch Tips
http://www.sip.eee.yamaguchi-u.ac.jp/kou/diff-patch.html
より。