ファイルをpatch
生成しないように言うことはできますか?私はこれを非常に迷惑にするパッチを見つけました。.orig
.rej
答え1
patch
他のオプションを指定しないと、-pN
パッチを完全に適用できない場合にのみこれらのファイルが生成されます。
したがって、1つのオプションは、誤ったパッチの作成(または受け入れ)を停止することです。 :)
現実の世界に戻ると、これが特徴です。パッチセグメントをソースファイルに適用できない場合は、ソースファイルのpatch(1)
一時コピーを保持し、*.orig
拒否されたセグメントをにダンプしてから、*.rej
パッチセグメントの適用を続行します。アイデアは、*.rej
いくつかのフラグメントをパッチ付きファイルにコピーしてファイルを開き、パッチプロセスを手動で進めることができるということです。*.orig
このファイルは、パッチ処理中に誤って何かが中断されたため、元のバージョンを参照する必要がある場合にも役立ちます。
*.rej
バグパッチを修正するために常にファイルにテキストを使用するわけではありませんが*.orig
、必要に応じて持っているとよいでしょう。
無効なパッチが修正された場合は、クイッククリーンアップのためにプロジェクトルートで次のスクリプトを実行します。
#!/bin/bash
find . '(' \
-name \*-baseline -o \
-name \*-merge -o \
-name \*-original -o \
-name \*.orig -o \
-name \*.rej \
')' -delete
cleanup-after-bad-patch
名前が長いと、誤って実行され、必要なファイルが削除されるのが部分的に防止されるため、そう呼びます。しかし、正直なところ、私は通常を入力して実行しますが、これは私の開発コンピュータでこのスクリプトを見つけるのにclean
TabEnter十分です。PATH
追加モードが適用可能であることを確認してください。私が選んだバージョン管理システムマージ操作中に同じ問題が発生した場合。状況に合わせて調整することもできます。VCS/マイクロコントローラツール。
答え2
この--no-backup-if-mismatch
オプションは「.orig」ファイルを防ぎます。
--merge
ファイル内の競合を引き起こすこのオプションを試すこともできます。
いずれにしても、マージが難しくなった場合は、すばやく良い状態に戻す方法が必要です。
答え3
パッチがバックアップを作成しないようにするには、-b
オプション--backup-...
を省略します。
.rej
ファイルを生成しないように指示するには、-r -
コマンドにオプションを追加します。
答え4
私が考えることができる最良の方法(ラグの下のほこりを掃除する方法であることは認めます)は、-r <tmpfile>
次のように使用することです。
# patch -r /tmp/deleteme.rej -i patchfile filetobepatched
v2.5.8以降、-r -
このファイルは実際に作成されます-
。