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


9

ここで紹介するパッチを作ってみます
2つのディレクトリがpp1(modified version)ありpp0(clean version)、次pp0.patchdiffコマンドでパッチファイルを作成するとします。

 diff -crB pp0 pp1 > pp0.patch

問題は、pp1にのみファイルがある場合、パッチに含まれないことです。それを回避するには?

更新
最初にpp0のディレクトリに移動し、パッチが成功するかどうかをテストします

  patch --dry-run -p1 -i /path-to-pp0.patch

コマンドに追加--new-fileしましたが、diffだけのものpp1は結果に表示されません

更新
誤って間違ったファイルにパッチを適用したので

  diff -crb --new-file pp1 pp0 > pp0.patch

または

  diff -crNb pp1 pp0 > pp0.patch

しましょう

回答:


9

--new-fileスイッチを使用してこれを実行できるはずです。diffのmanページから抜粋

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

正しくパッチを適用したかどうかはわかりませんが、新しいファイルは含まれていません
manuzhang

私の謝罪、それはうまくいく
manuzhang

3

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

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


thx、私が実際に1つ持っていて、ミスをしたときに過去に
戻れるといいのに
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.