0

次のような特定のファイルが 1 つあります。

 +
 +                        %3)+Lorem
 +
 +                        %4)+Lorem
 +
 +                        %5)+Lorem
 +
 +

すべてのコンテキスト行で python 2.7 difflib を使用して統合 diff を生成します。

--- bug-3.txt   2012-07-23 15:25:42
+++ FILE    2012-07-23 15:25:42
@@ -1,8 +1,10 @@
 +
 +                        %3)+Lorem
 +
 +                        %4)+Lorem
 +
 +                        %5)+Lorem
 +
++                        %6)+Lorem
++
 +

そして、パッチ (パッチ --verbose bug-3.txt bug-3.patch) を呼び出すと、次のエラーが表示されます。

Hmm...  Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|--- bug-3.txt  2012-07-23 15:25:42
|+++ FILE   2012-07-23 15:25:42
--------------------------
Patching file bug-3.txt using Plan A...
Hunk #1 FAILED at 1.
1 out of 1 hunk FAILED -- saving rejects to file bug-3.txt.rej
done

パッチにバグがある可能性があると思います。このエラーの正確な原因とその対処方法について何か考えがありますか?

Ubuntu 12.04 を実行し、パッチ 2.6.1 を適用します。

4

1 に答える 1

1

元のファイルには各行の先頭に単一のスペースが含まれているように見えますが、そのスペースは差分にはありません。あなたの差分出力は次のようになると思います:

--- bug-3.txt   2012-07-23 15:25:42
+++ FILE    2012-07-23 15:25:42
@@ -1,8 +1,10 @@
  +
  +                        %3)+Lorem
  +
  +                        %4)+Lorem
  +
  +                        %5)+Lorem
  +
+ +                        %6)+Lorem
+ +
  +

おそらくstrip()、差分を生成する前にファイルから各行を呼び出していますか?

于 2012-07-23T16:31:59.150 に答える