私は次のようdiff
に実行していますpatch
:
diff --unified --ignore-space-change old.txt new.txt > changed.patch
patch --version-control=none third.txt changed.patch
ファイルが生成されるのを--version-control=none
防ぐ必要があります(はい)。patch
third.txt.orig
ただし、third.txt.~1~
反対という名前のファイルが生成されます。
すべての友達が成功し、SIMPLE_BACKUP_SUFFIX
環境変数は空でした。
この--posix
オプションはthird.orig
ファイルを生成します。
third.rej
問題が発生した場合、ファイルが生成されても問題ありません。
私はGNUパッチ2.7.6でGit Bashを使用しています。
答え1
略語:使用--no-backup-if-mismatch
:
通常、修理するパッチが元の入力ファイルと正確に一致しない場合は、バックアップファイルを作成します。この場合、「」を使用してパッチを元に戻すと、元のデータを回復できない可能性があります。
patch -R
'(リバースパッチの適用を参照).ただし、POSIXと互換性がある場合、パッチはデフォルトでバックアップファイルを生成しません。パッチを参照してPOSIX規格。これ
--backup
(-b) オプションを使用すると、パッチが元の入力と一致するかどうかに関係なく、パッチはバックアップファイルを生成します。これ--backup-if-mismatch
オプションを使用すると、パッチが一致しないファイルのバックアップファイルを作成します。これは、POSIX と互換性がない場合のデフォルトです。これ--no-backup-if-mismatch
オプションを使用すると、パッチが一致しなくてもパッチはバックアップファイルを生成しません。これは、POSIX と互換性がある場合のデフォルトです。
(「適合性」には少し説明が必要ですが、The Open Groupの基本仕様2018年7号では明確ではありません。)