
はべき等性を持って呼び出すことができます。つまり、 を繰り返し呼び出しても を1 回呼び出した場合と同じ効果が得られるpatch
ようなオプションの組み合わせはありますか(空でない diff の場合)。patch
patch
答え1
一部のパッチ¹は複数回適用できるため、これを保証することはできませんが、
patch -N -r- -i your.patch
your.patch
すでに適用されているハンクを無視して適用されます。
-N
すでに適用されたパッチを元に戻そうとするのを回避し、失敗したハンクをファイル-r-
に保存するのをスキップします。.rej
長いオプションを持つ同等のコマンドは
patch --forward --reject-file=- --input=your.patch
この方法で実行すると、patch
ハンクを無視すると失敗が示されます。無視されたハンクだけが「エラー」の場合、コード 1 (少なくとも 1 つのハンクが失敗したか、マージの競合がありました) で終了します。より深刻なエラーは終了コード 2 で示されます。
¹ コンテキストのないパッチまたはハンク、または追加された行がコンテキストと一致する場合(例えば宣言の最初の数行が次の関数と一致する多態的関数を追加するパッチ。