CVS とかで管理していたら、直ぐ出来るのだろうけど。
パッチを作る diff コマンド
% pwd /home/ryosuke/tmp % ls hoge hoge.orig % diff -ur hoge.orig hoge > patch-01 % diff -uNr hoge.orig hoge > patch-02
ディレクトリ単位でパッチをつくる。上はファイルの有無に関して関知しないが、下は新しいファイルも提供される。パッチを当てるときは次のようにする。
パッチを当てる patch コマンド
% pwd /home/ryosuke/tmp % cd hoge.orig % patch -p1 < ../patch-02
-p* はパッチファイル内のディレクトリを幾つ削るかを決める。パッチを作るときは /home/ryosuke/tmp を基準に作成したが、当てるときは /home/ryosuke/tmp/hoge.orig が基準なので、1 階層分ずらして適用しています。