How to use diff and patch
ブログ構築システムをつくっていて、 ディレクトリの深さに応じて、パスの指定方法がちょっとだけ異なるテンプレートファイルを 使う必要が出てきた。 このテンプレートをコピーしていると共通部分に変更が生じたときに 全部のテンプレートを書き直す必要が生じてしまうので、diff と patch を 使って対処することに。
具体例
original.txt と customized.txt がある。
original.txt をほんの少し変更したファイルが customized.txt。
この差分をファイル(patch.txt)に取っておいて、original.txt と patch.txt から customized.txt を作り出す方法。
$ diff original.txt customized.txt -u > patch.txt
$ patch < patch.txt
$ diff original.txt customized.txt
まとめ
- -u オプションにより patch.txt にファイル名が記録される
- したがって、patch コマンドを使うときにファイル名を指定する必要はない
- patch < patch.txt した場合は、original.txt が上書きされる点に注意