web-dev-qa-db-ja.com

新しいファイルをパッチに含める方法

私は紹介されたパッチを作成しようとします ここ
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

しましょう

9
manuzhang

--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
9
pootzko

即座の答え:diff -Npootzkoで説明 として。多くのパッチがdiff -urNによって作成されていることがわかります。

あなたの人生をより良くすることができるもの:バージョン管理ツールの使用を開始してください。何もわからない場合は、3つの主要な 分散リビジョンコントロール システム、 BazaarGit または Mercurial 。クリーンバージョンをチェックインして作業し、何回でも作業をチェックインして、バージョン管理システムにクリーンバージョンと作業の違いを確認してください。