diffコマンドには、gitオプションを使用している場合でも、DCSで一般的に使用されるパスプレフィックスが含まれています。
--- a/file.ext
+++ b/file.ext
したがって、このようなパッチを適用するには、-p0ではなく-p1を使用する必要があります。
Mercurialからクリーンなパッチを生成する方法はありますか?
Mercurialは-p0パッチを発行しません。@Ringdigが指摘しているように、それらがあなたが望むものになることはめったにありません。
この回答で与えられたseeスクリプトを適応させることができます:パッチストリップレベルを変換して、最初のディレクトリを追加する代わりに削除します。
このようなものは機能するはずです(テストされていません):
sed \
-e 's!^--- a/!--- !' \
-e 's!^+++ b/!+++ !' \
< p1.patch \
> p0.patch
「p1パッチ」がp1.patchという名前のファイルにあるとすると、出力はp0.patchになります。