Python difflib GNU патч совместимость - PullRequest
4 голосов
/ 28 августа 2011

Можно ли создать патч с модулем python difflib, который совместим с патчем GNU? Я пытался использовать unified_diff и context_diff, а также пытался указать lineterm как "\ n", но я все еще получаю эту ошибку:

[intense@Singularity Desktop]$ patch diff.patch test.txt 
patch unexpectedly ends in middle of line
patch: **** Only garbage was found in the patch input.

Я использовал file.writelines (diff) для записи патча в файл (кусок кода http://pastebin.com/3HAWfwVf)

Файл test.txt:

Hello, this is test
blah

Файл test2.txt:

Hello, this is test
blah, dfsgjdfgj
lfkdjgkldfjgkldfjgkl

И сгенерированный патч:

--- /home/intense/Desktop/test.txt
+++ /home/intense/Desktop/test2.txt
@@ -1,2 +1,7 @@
-Hello, this is test
-blah+Hello,+this+is+test+blah,+dfsgjdfgj+lfkdjgkldfjgkldfjgkl

Спасибо за любую помощь.

Ответы [ 2 ]

0 голосов
/ 28 августа 2011

Я бы использовал модуль Mercurials bdiff, который значительно быстрее, чем difflib.

0 голосов
/ 28 августа 2011
  1. Попробуйте использовать python-patch вместо утилиты исправления GNU для применения унифицированных различий,
  2. ИЛИ используйте diff -rNau dir-v1/ dir-v2/ > 1-2.patch вместо difflib.
...