にたまごほうれん草アーカイブ

はてなダイアリーで書いてた「にたまごほうれん草」という日記のアーカイブです。現在は「にたまごほうれん草ブログ」を運営中です。

パッチを当てる

世間ではよく「パッチを当てる」と言いますが、実際私は自分でパッチを当てたことなどないのです。
というわけで調べて(ってほどでもないですが)みました。
私の場合は、ディレクトリ丸ごと差分をとってパッチを生成し、それを同じくディレクトリ内のファイルに丸ごと適用する必要があったので、コマンドもそれに即します。

パッチの作成

これはdiffコマンドを用いて以下のようにします。

diff -crN base_dir modified-dir > patch-file

オプションの意味は、cがパッチ作成、rが再帰的に実行(要するにディレクトリ内全部)、Nは新たに作成したファイルも含める、という意味です。
こうしてpatch-fileというパッチファイルが作成されました。

パッチの適用

対象となるディレクトリにおいて、以下のコマンドを実行します。

patch -p0 -d . -E < patch-file

-Eはファイルの削除も反映されるので気をつけましょう。