パッチのパラメータ-p0と-p1の違いは何ですか?

パッチのパラメータ-p0と-p1の違いは何ですか?

patch -p0これらとそしての違いは何ですかpatch -p1

違いはありますか?

ベストアンサー1

パッチを生成する最も一般的な方法は、diffコマンドまたはいくつかのバージョン管理に組み込まれているdiff同様のコマンドを実行することです。時には2つのファイルを比較し、diff次のように実行します。

diff -u version_by_alice.txt version_by_bob.txt >alice_to_bob.patch

これにより、1つのファイルに対する変更が含まれますが、ファイル名はまったく含まれていないパッチを受け取ります。パッチを適用するときは、パッチを適用するファイルを指定する必要があります。

patch <alice_to_bob.patch version2_by_alice.txt

通常、ディレクトリに含まれる完全なマルチファイルプロジェクトの2つのバージョンを比較します。一般的な呼び出しはdiff次のとおりです。

diff -ru old_version new_version >some.patch

パッチにはヘッダー行で指定されたファイル名が含まれます。たとえば、diff -ru old_version/dir/file new_version/dir/fileファイル名からpatchプレフィックス(old_versionまたは)を削除する必要があります。new_versionこれ-p1が意味するのは、最初のレベルのディレクトリを削除することです。

場合によっては、パッチのヘッダー行に何の指示もなくファイル名が直接含まれることがあります。これはバージョン管理システムで一般的です。たとえば。cvs diffdiff -r1.42 foo削除するプレフィックスがないため、指定する必要があります-p0

特別な場合、比較したいツリーにサブディレクトリがない場合、-pオプションは必要ありません。patchファイル名のすべてのディレクトリ部分が削除されます。ただし、ほとんどの場合、パッチの生成方法に応じて、または-p0これが必要です。-p1

おすすめ記事