2011-12-10 6 views
0

私はディレクトリツリー全体にパッチを当てたいと思います。 diffはすべての相違点を検出しますが、パッチはこれらを関連ファイルに適用します。サブディレクトリ内のファイルを変更すると、ディレクトリツリーの1つ上のファイルがパッチされているはずです。diffはサブディレクトリでは動作しません

私は、次のコマンドを使用します。

diff -Nur extern/ local/ | patch -d extern 

それと間違っている何?

答えて

1

あなたはまた、-pとディレクトリのいずれかのレベルを取り除くためのパッチを指示する必要があります(「何かを行う前に、すぐにディレクトリdirに変更します。」)-d DIRを渡しているので:

+++ extern/foo.x 
--- local/foo.x 
@@ -21,7 +21,9 @@ 

- yyy 
+ xxx 

...ので、あなたは、パスでその最初の接頭辞を取り除く必要があります。差分の出力は次のようになりますのでです

diff -Nur extern/ local/ | patch -d extern -p1 

関連する問題