パッチがバックアップファイルを作成しないようにするにはどうすればよいですか?

パッチがバックアップファイルを作成しないようにするにはどうすればよいですか?

私は patch(1) プログラムを適用するコードを書いていますが、バックアップ ファイルの作成を完全に防止したいと考えています。つまり、foo.orig特定のファイルの更新に失敗した (この場合はファイルが作成されますfoo.rej) 場合、またはファイルの更新は成功したもののあいまいさが伴う場合 (通常はどちらも実行されます) にファイルを作成しないようにしたいのです。これは言うほど簡単ではないようです。

基本ケース: Debian ソース ディレクトリに対して「patch」を実行すると、debian/changelogファイルの更新に失敗します。patch はファイルdebian/changelog.origfile を作成します (これを回避しようとしています)。

ドキュメントには--no-backup-if-mismatchスイッチについて記載されていますが、これはまさに私が必要としているもののようです。しかし、これを追加すると、バックアップ ファイルは作成されますが、今度は という名前になりますdebian/changelog.~1~

ドキュメントには、--posixスイッチが存在する場合、バックアップは作成されないとも記載されています。 の代わりにこのスイッチを使用すると--no-backup-if-mismatch、バックアップ ファイルは作成されますが、元の.origサフィックスが付きます。

私が見つけた唯一の回避策は、-B/--prefixスイッチを使用して、バックアップを任意のディレクトリに書き込むように指示することです。しかし、これは見苦しいハックのように思えます。バックアップを防止するよりクリーンな方法はないでしょうか?

答え1

どうやら-B/--prefixそれが唯一の道のようです。

答え2

によると(diffutils)バックアップ--no-backup-if-mismatchあなたが望むことを行います。

答え3

文書化されていないオプションの使用を検討してください--version-control none。そのオプションはFreeBSD版のドキュメントpatch

関連情報