0

diffコマンドには、gitオプションを使用している場合でも、DCSで一般的に使用されるパスプレフィックスが含まれています。

--- a/file.ext
+++ b/file.ext

したがって、このようなパッチを適用するには、-p0ではなく-p1を使用する必要があります。

Mercurialからクリーンなパッチを生成する方法はありますか?

4

2 に答える 2

1

Mercurialは-p0パッチを発行しません。@Ringdigが指摘しているように、それらがあなたが望むものになることはめったにありません。

于 2012-05-14T21:41:50.457 に答える
0

この回答で与えられたseeスクリプトを適応させることができます:パッチストリップレベルを変換して、最初のディレクトリを追加する代わりに削除します。

このようなものは機能するはずです(テストされていません):

sed \
    -e 's!^--- a/!--- !' \
    -e 's!^+++ b/!+++ !' \
    < p1.patch \
    > p0.patch

「p1パッチ」がp1.patchという名前のファイルにあるとすると、出力はp0.patchになります。

于 2012-05-18T07:25:56.587 に答える