ソースツリーには、変更されたdnsmasq-2.80test4ソース(およびgitファイル)が含まれています。
これで、ユーザーのホームフォルダで作業しながら、diff
最新の2.86 dnsmasqソースコードを変更された2.80test4に適用したいと思います。patch
だから... / dnsmasq-2.80test4をユーザーのホームディレクトリにコピーすることから始め、次のようにdiffファイルを作成しました。
~$ diff -urN ./dnsmasq-2.80test4 ./dnsmasq-2.86 > dnsmasq-2.86.diff
~/dnsmasq-2.80test4
その後、次のように古いフォルダをパッチしようとしました。
~$ cd ./dnsmasq-2.80test4
~$ patch --dry-run -i ../dnsmasq-2.86.diff
CHANGELOG、FAQ、Makefile、Versionでうまく機能します。Android.mk
サブディレクトリの最初のファイルはbld
失敗しますが、これは大きな問題ではありません。実際の取引ブロッカーは、同じサブディレクトリにある2番目のファイルです。
can't find file to patch at input line 466
Perhaps you should have used the -p or --strip option?
The text leading up to this was:
--------------------------
|diff -ur ./dnsmasq-2.80test4/bld/get-version ./dnsmasq-2.86/bld/get-version
|--- ./dnsmasq-2.80test4/bld/get-version 2022-07-03 17:32:08.541879257 +0200
|+++ ./dnsmasq-2.86/bld/get-version 2021-09-08 22:21:22.000000000 +0200
--------------------------
解決策
作業ディレクトリを1つ上のレベルに変更し、最新の/ dnsmasq-2.86ソースディレクトリの名前を別の名前に変更する(または単に削除した場合)、次のようにパッチが古い/ dnsmasq-2.80test4ディレクトリに正しく適用されているように見えます。
~$ patch --dry-run --verbose -p0 -i dnsmasq-2.86.diff
質問
dirの代わりに作業ディレクトリに変更する必要があるディレクトリ()で作業できるように、およびdiff
/またはコマンドを変更するにはどうすればよいですか?patch
patch
cd ./parent/dnsmasq-2.80test4
cd ./parent