以下を使用してパッチを作成しましたdiff
。
diff -u /home/user/onderzoeksstage/omf/Rakefile /home/user/onderzoeksstage/Rakefile > rakefile2.patch
この rakefile2.patch を別のディレクトリに配置しました: /home/user/onderzoeksstage/omf/confine/patches
. ここで、すべてのパッチが収集されているディレクトリに移動して呼び出し、 rakefile2.patch ヘッダーを読み取ることで、パッチを適用するファイル (元のファイル) の場所を知ることができると想定していpatch < rakefile2.patch
ましたpatch
。/home/user/onderzoeksstage/omf/Rakefile
しかし、それを行うと、patch
パッチを適用するファイルが見つからないと言われます。
[user@localhost patches]$ patch < rakefile2.patch
can't find file to patch at input line 3
Perhaps you should have used the -p or --strip option?
The text leading up to this was:
--------------------------
|--- /home/user/onderzoeksstage/omf/Rakefile 2013-02-12 14:11:49.809792527 +0100
|+++ /home/user/onderzoeksstage/Rakefile 2013-02-12 12:17:50.314831492 +0100
--------------------------
File to patch: ...
...
私の仮定は明らかに間違っていましたが、ではどのように機能するpatch
のでしょうか? 行って/home/user/onderzoeksstage/omf/
電話をかけるとうまくいきpatch < rakefile2.patch
ます。patch
パスの末尾にあるファイル名のヘッダーのみを見て、ディレクトリを考慮しませんか? そして、私が達成しようとすることは決してうまくいかないのですか?どうしてこれなの; これは、Rakefile と呼ばれる任意のファイルにパッチを適用して (たとえば、私の場合)、より「一般的な」パッチにすることができるためですか?
ありがとう、グレン