互換性の問題

POSIX規格は、GNU patchとは異なる動作を規定しています。

  • POSIXのpatchでは、-bを指定しなければ、不一致があってもバックアップを作成しません。GNU patchでは、--no-backup-if-mismatchを指定するか、--posixまたは環境変数POSIXLY_CORRECTの設定によってPOSIXに準拠させると、この動作になります。
  • パッチのヘッダーから適用対象のファイル名を推測するとき、patchは複雑な方法を使用し、必要に応じてPOSIXに準拠させられます。コンテキスト差分のヘッダーとIndex:行にあるファイル名が、先頭部分を取り除いた後にすべて同じになる場合、この方法はPOSIXと同等です。各ヘッダーのファイル名がすべて同じ数のスラッシュを含んでいれば、通常、そのパッチには互換性があります。
  • GNU patchまたはPOSIXに準拠するpatchを使うすべての人が実行できる手順を送る場合、使用するオプションは次のものに限定してください。次の一覧の空白は省略できます。
    
    
    -b
    -c
    -d dir
    -D define
    -e
    -i patchfile
    -l
    -n
    -N
    -o outfile
    -p num
    -R
    -r rejectfile
    -u