]> git.ipfire.org Git - thirdparty/patchwork.git/commitdiff
parser: Add missing extended header lines
authorPetr Vorel <petr.vorel@gmail.com>
Sun, 5 May 2019 20:20:05 +0000 (22:20 +0200)
committerStephen Finucane <stephen@that.guru>
Wed, 5 Jun 2019 10:29:43 +0000 (11:29 +0100)
Patchwork didn't recognise some patches due missing some extended header
lines (e.g. "old mode" and "new mode" for renaming file mode, see [1]).
Thus adding all modes from git doc [2].

[1] https://lists.ozlabs.org/pipermail/patchwork/2019-April/005741.html
[2] https://git-scm.com/docs/git-diff#_generating_patches_with_p

Suggested-by: Veronika Kabatova <vkabatov@redhat.com>
Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
Closes: #267
(cherry picked from commit 753e4572d7e8b836daf6087820c49637b3b23602)

patchwork/parser.py

index e064b0ffcf49b94c16b049032eb1223a20d9ef8e..0fedaa6513adcbf8ae738f54595048cb87619aae 100644 (file)
@@ -760,7 +760,7 @@ def parse_patch(content):
     #  3 -> 4 (@@ line)
     #  4 -> 5 (patch content)
     #  5 -> 1 (run out of lines from @@-specifed count)
-    #  1 -> 6 (rename from / rename to / new file / index)
+    #  1 -> 6 (extended header lines)
     #  6 -> 2 (---)
     #  6 -> 1 (other text)
     #
@@ -790,7 +790,15 @@ def parse_patch(content):
             if line.startswith('--- '):
                 state = 2
 
-            if line.startswith(('rename from ', 'rename to ',
+            # extended header lines
+            # @see https://git-scm.com/docs/git-diff#_generating_patches_with_p
+            if line.startswith(('old mode ', 'new mode ',
+                                'deleted file mode ',
+                                'new file mode ',
+                                'copy from ', 'copy to ',
+                                'rename from ', 'rename to ',
+                                'similarity index ',
+                                'dissimilarity index ',
                                 'new file mode ', 'index ')):
                 state = 6
         elif state == 2: