パッチの逆転が成功した場合、それは常にパッチが完全に適用されたことを意味しますか?
これは、「ファイルまたはフォルダにすでにパッチが適用されているかどうかを確認する」および「すでに適用されているパッチをスキップするときに0 をpatch返す」という 2つの質問で触れられますが、どちらも満足のいく答えはありませんでした。 スクリプトを作成していて、パッチについて次のことをテストしたいと思います。 完全に適用:続行 一部適用:終了 適用されない:正常に適用できる場合はそれを実行して続行し、それ以外の場合は終了します 問題は部分的に適用されたケースを処理することです: mkdir test && cd test cat << EOF > foobar.patch --- /dev/null +++ foo @@ -0,0 +1 @@ +foo --- /dev/null +++ bar @@ -0,0 +1 @@ +bar EOF patch --forward -i foobar.patch rm foo つまり、barは存在しますが、ある時点で削除されたため、fooは存在しません。パッチを予行演習で前方に適用すると、正常に適用されないため、終了コードは1になります。 $ patch --dry-run --forward --force -i …