Linux:diff&patch
いい感じにdiffをとる
$ diff -Ebt -U 0 変更前のファイル 変更後のファイル > パッチファイル名
オプションの「-u」はパッチファイルを、unified diff形式で出力。「-U NUM」はdiff 形式で前後 NUM (デフォルト: 3) 行を表示する。ファイル名を記録してくれて、後でパッチを当てるさいにファイル名を指定しなくてよい。
-u, -U NUM, --unified[=NUM] ユニファイド diff 形式で前後 NUM (デフォルト: 3) 行を表示する
-E, --ignore-tab-expansion タブ展開によって発生する違いを無視する
-b, --ignore-space-change スペース数により生じる違いを無視する
-t, --expand-tabs 出力時にタブをスペースに展開する
パッチの適用
$ patch -u [適用するファイル名] < パッチファイル名
オプションの「-u」はパッチファイルを、unified diff形式のパッチを適用するという意味。
「適用するファイル名」を省略した場合は、パッチファイルの先頭の行「--- ファイル名」のファイルにパッチが適用される。
パッチ適用を戻す(リバースパッチ)
$ patch -R [適用するファイル名] < パッチファイル名
間違ってパッチを適用してしまった場合など、patchコマンドにオプション「-R」を指定することでパッチ適用を戻すリバースパッチが出来る。