summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPetr Vorel <petr.vorel@gmail.com>2019-05-05 22:20:05 +0200
committerStephen Finucane <stephen@that.guru>2019-06-04 12:50:50 +0100
commit753e4572d7e8b836daf6087820c49637b3b23602 (patch)
tree045963fb6fbe7ba2dbd3deea1a866536a1109ff9
parent8c8b4b96a251deed6a48349e29e6043d2903daec (diff)
downloadpatchwork-753e4572d7e8b836daf6087820c49637b3b23602.tar
patchwork-753e4572d7e8b836daf6087820c49637b3b23602.tar.gz
parser: Add missing extended header lines
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
-rw-r--r--patchwork/parser.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/patchwork/parser.py b/patchwork/parser.py
index 91e9920..a50e3ae 100644
--- a/patchwork/parser.py
+++ b/patchwork/parser.py
@@ -751,7 +751,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)
#
@@ -781,7 +781,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: