diff options
author | Petr Vorel <petr.vorel@gmail.com> | 2019-05-05 22:20:05 +0200 |
---|---|---|
committer | Stephen Finucane <stephen@that.guru> | 2019-06-04 12:50:50 +0100 |
commit | 753e4572d7e8b836daf6087820c49637b3b23602 (patch) | |
tree | 045963fb6fbe7ba2dbd3deea1a866536a1109ff9 | |
parent | 8c8b4b96a251deed6a48349e29e6043d2903daec (diff) | |
download | patchwork-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.py | 12 |
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: |