私は紹介されたパッチを作成しようとします ここ 。
2つのディレクトリpp1(modified version)
とpp0(clean version)
があるとします。diff
コマンドを使用してパッチファイルpp0.patch
を作成します。
diff -crB pp0 pp1 > pp0.patch
問題は、pp1にのみファイルがある場合、パッチに含まれないことです。それを回避するには?
[〜#〜]更新[〜#〜]:
最初にpp0のディレクトリに移動し、パッチが成功するかどうかをテストします
patch --dry-run -p1 -i /path-to-pp0.patch
diff
コマンドに--new-file
を追加しましたが、pp1
のみのものは結果に表示されません
[〜#〜]更新[〜#〜]:
誤って間違ったファイルにパッチを適用したので
diff -crb --new-file pp1 pp0 > pp0.patch
または
diff -crNb pp1 pp0 > pp0.patch
しましょう
--new-file
スイッチを使用してこれを実行できるはずです。 diff man page から取得:
--new-file
In directory comparison, if a file is found in only one direc-
tory, treat it as present but empty in the other directory.
これを試して:
diff -crB --new-file pp0 pp1 > pp0.patch
即座の答え:diff -N
、 pootzkoで説明 として。多くのパッチがdiff -urN
によって作成されていることがわかります。
あなたの人生をより良くすることができるもの:バージョン管理ツールの使用を開始してください。何もわからない場合は、3つの主要な 分散リビジョンコントロール システム、 Bazaar 、 Git または Mercurial 。クリーンバージョンをチェックインして作業し、何回でも作業をチェックインして、バージョン管理システムにクリーンバージョンと作業の違いを確認してください。