Re: [PATCH] parser: recognise git commit consisting only of empty new file

2019-03-07 Thread Stephen Finucane
On Thu, 2019-03-07 at 14:01 +1100, Daniel Axtens wrote:
> Stephen Finucane  writes:
> 
> > On Thu, 2019-02-28 at 15:29 +1100, Daniel Axtens wrote:
> > > Commits with only an empty new file are liable to be missed.
> > > The parser state machine doesn't recognise the headers "new
> > > file mode" and "index": teach it about them.
> > > 
> > > Add a test to demonstrate.
> > > 
> > > It's a little bit academic as you don't usually send patches like
> > > that but sometimes you do, especially if you're a snowpatch dev :)
> > > 
> > > Closes: #256
> > > Reported-by: Andrew Donnellan 
> > > Signed-off-by: Daniel Axtens 
> > 
> > Reviewed-by: Stephen Finucane 
> > 
> > ...and applied. Thanks!
> 
> Thanks! Should we apply this to stable as well? (I'm happy to do the
> legwork and apply it if you're OK with it.)
> 
> Regards,
> Daniel

Already done [1] :) I guess we should cut another release there
shortly. Might be almost time for a v2.2.0 too?

Stephen

[1] 
https://github.com/getpatchwork/patchwork/commit/0c60d688d0ac3cf41477970b9c8d299ef1d4227b

___
Patchwork mailing list
Patchwork@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/patchwork


Re: [PATCH] parser: recognise git commit consisting only of empty new file

2019-03-06 Thread Daniel Axtens
Stephen Finucane  writes:

> On Thu, 2019-02-28 at 15:29 +1100, Daniel Axtens wrote:
>> Commits with only an empty new file are liable to be missed.
>> The parser state machine doesn't recognise the headers "new
>> file mode" and "index": teach it about them.
>> 
>> Add a test to demonstrate.
>> 
>> It's a little bit academic as you don't usually send patches like
>> that but sometimes you do, especially if you're a snowpatch dev :)
>> 
>> Closes: #256
>> Reported-by: Andrew Donnellan 
>> Signed-off-by: Daniel Axtens 
>
> Reviewed-by: Stephen Finucane 
>
> ...and applied. Thanks!

Thanks! Should we apply this to stable as well? (I'm happy to do the
legwork and apply it if you're OK with it.)

Regards,
Daniel
___
Patchwork mailing list
Patchwork@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/patchwork


Re: [PATCH] parser: recognise git commit consisting only of empty new file

2019-03-02 Thread Stephen Finucane
On Thu, 2019-02-28 at 15:29 +1100, Daniel Axtens wrote:
> Commits with only an empty new file are liable to be missed.
> The parser state machine doesn't recognise the headers "new
> file mode" and "index": teach it about them.
> 
> Add a test to demonstrate.
> 
> It's a little bit academic as you don't usually send patches like
> that but sometimes you do, especially if you're a snowpatch dev :)
> 
> Closes: #256
> Reported-by: Andrew Donnellan 
> Signed-off-by: Daniel Axtens 

Reviewed-by: Stephen Finucane 

...and applied. Thanks!

___
Patchwork mailing list
Patchwork@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/patchwork


Re: [PATCH] parser: recognise git commit consisting only of empty new file

2019-02-27 Thread Andrew Donnellan

On 28/2/19 3:29 pm, Daniel Axtens wrote:

Commits with only an empty new file are liable to be missed.
The parser state machine doesn't recognise the headers "new
file mode" and "index": teach it about them.

Add a test to demonstrate.

It's a little bit academic as you don't usually send patches like
that but sometimes you do, especially if you're a snowpatch dev :)

Closes: #256
Reported-by: Andrew Donnellan 
Signed-off-by: Daniel Axtens 


LGTM, thanks for fixing this

Reviewed-by: Andrew Donnellan 


---

Apologies for the long radio silence. I'm now in a job where Patchwork
is slightly adjacent to my role, so I have a bit more flexibility to work
on it. The usual lack of promises apply.
---
  patchwork/parser.py   | 10 +++---
  .../tests/mail/0021-git-empty-new-file.mbox   | 32 +++
  patchwork/tests/test_parser.py|  5 +++
  3 files changed, 43 insertions(+), 4 deletions(-)
  create mode 100644 patchwork/tests/mail/0021-git-empty-new-file.mbox

diff --git a/patchwork/parser.py b/patchwork/parser.py
index 946b66851d7c..712780a498c4 100644
--- a/patchwork/parser.py
+++ b/patchwork/parser.py
@@ -742,7 +742,7 @@ def parse_patch(content):
  # 3: patch header line 2 (+++)
  # 4: patch hunk header line (@@ line)
  # 5: patch hunk content
-# 6: patch meta header (rename from/rename to)
+# 6: patch meta header (rename from/rename to/new file/index)
  #
  # valid transitions:
  #  0 -> 1 (diff, Index:)
@@ -752,7 +752,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)
+#  1 -> 6 (rename from / rename to / new file / index)
  #  6 -> 2 (---)
  #  6 -> 1 (other text)
  #
@@ -782,7 +782,8 @@ def parse_patch(content):
  if line.startswith('--- '):
  state = 2
  
-if line.startswith(('rename from ', 'rename to ')):

+if line.startswith(('rename from ', 'rename to ',
+'new file mode ', 'index ')):
  state = 6
  elif state == 2:
  if line.startswith('+++ '):
@@ -843,7 +844,8 @@ def parse_patch(content):
  else:
  state = 5
  elif state == 6:
-if line.startswith(('rename to ', 'rename from ')):
+if line.startswith(('rename to ', 'rename from ',
+'new file mode ', 'index ')):
  patchbuf += buf + line
  buf = ''
  elif line.startswith('--- '):
diff --git a/patchwork/tests/mail/0021-git-empty-new-file.mbox 
b/patchwork/tests/mail/0021-git-empty-new-file.mbox
new file mode 100644
index ..c3be48e6eb39
--- /dev/null
+++ b/patchwork/tests/mail/0021-git-empty-new-file.mbox
@@ -0,0 +1,32 @@
+From andrew.donnel...@au1.ibm.com Thu Feb 28 00:37:42 2019
+Delivered-To: d...@axtens.net
+Received: by 2002:a4a:2812:0:0:0:0:0 with SMTP id h18csp2242ooa;
+Wed, 27 Feb 2019 16:37:59 -0800 (PST)
+From: Andrew Donnellan 
+Subject: [snowpatch] [PATCH 1/3] Test commit; please ignore
+To: Daniel Axtens 
+Date: Thu, 28 Feb 2019 11:37:42 +1100
+User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101
+ Thunderbird/60.5.1
+MIME-Version: 1.0
+Content-Language: en-AU
+
+
+Doing some snowpatching.
+---
+  banana | 0
+  1 file changed, 0 insertions(+), 0 deletions(-)
+  create mode 100644 banana
+
+diff --git a/banana b/banana
+new file mode 100644
+index ..e69de29bb2d1
+--
+2.11.0
+
+___
+snowpatch mailing list
+snowpa...@lists.ozlabs.org
+https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.ozlabs.org_listinfo_snowpatch=DwIDAg=jf_iaSHvJObTbx-siA1ZOg=-pHOU8dm1U-U1crivyxKr_-xvZrIBB8YUqvA3el0Ee0=VWJFv-r8DBhr5gE3qkDHngtXenfi5deVGQpQcAyKocY=pn_W97wan_5Uwi-2wli6N87gaeoNFy7pchZS_cPHtOY=
+
+
diff --git a/patchwork/tests/test_parser.py b/patchwork/tests/test_parser.py
index 664edd5bab44..ddbcf5b15a19 100644
--- a/patchwork/tests/test_parser.py
+++ b/patchwork/tests/test_parser.py
@@ -583,6 +583,11 @@ class PatchParseTest(PatchTest):
  self.assertEqual(diff.count("\nrename to "), 2)
  self.assertEqual(diff.count('\n-a\n+b'), 1)
  
+def test_git_new_empty_file(self):

+diff, message = self._find_content('0021-git-empty-new-file.mbox')
+self.assertTrue(diff is not None)
+self.assertTrue(message is not None)
+
  def test_cvs_format(self):
  diff, message = self._find_content('0007-cvs-format-diff.mbox')
  self.assertTrue(diff.startswith('Index'))



--
Andrew Donnellan  OzLabs, ADL Canberra
andrew.donnel...@au1.ibm.com  IBM Australia Limited

___
Patchwork mailing list
Patchwork@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/patchwork


[PATCH] parser: recognise git commit consisting only of empty new file

2019-02-27 Thread Daniel Axtens
Commits with only an empty new file are liable to be missed.
The parser state machine doesn't recognise the headers "new
file mode" and "index": teach it about them.

Add a test to demonstrate.

It's a little bit academic as you don't usually send patches like
that but sometimes you do, especially if you're a snowpatch dev :)

Closes: #256
Reported-by: Andrew Donnellan 
Signed-off-by: Daniel Axtens 
---

Apologies for the long radio silence. I'm now in a job where Patchwork
is slightly adjacent to my role, so I have a bit more flexibility to work
on it. The usual lack of promises apply.
---
 patchwork/parser.py   | 10 +++---
 .../tests/mail/0021-git-empty-new-file.mbox   | 32 +++
 patchwork/tests/test_parser.py|  5 +++
 3 files changed, 43 insertions(+), 4 deletions(-)
 create mode 100644 patchwork/tests/mail/0021-git-empty-new-file.mbox

diff --git a/patchwork/parser.py b/patchwork/parser.py
index 946b66851d7c..712780a498c4 100644
--- a/patchwork/parser.py
+++ b/patchwork/parser.py
@@ -742,7 +742,7 @@ def parse_patch(content):
 # 3: patch header line 2 (+++)
 # 4: patch hunk header line (@@ line)
 # 5: patch hunk content
-# 6: patch meta header (rename from/rename to)
+# 6: patch meta header (rename from/rename to/new file/index)
 #
 # valid transitions:
 #  0 -> 1 (diff, Index:)
@@ -752,7 +752,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)
+#  1 -> 6 (rename from / rename to / new file / index)
 #  6 -> 2 (---)
 #  6 -> 1 (other text)
 #
@@ -782,7 +782,8 @@ def parse_patch(content):
 if line.startswith('--- '):
 state = 2
 
-if line.startswith(('rename from ', 'rename to ')):
+if line.startswith(('rename from ', 'rename to ',
+'new file mode ', 'index ')):
 state = 6
 elif state == 2:
 if line.startswith('+++ '):
@@ -843,7 +844,8 @@ def parse_patch(content):
 else:
 state = 5
 elif state == 6:
-if line.startswith(('rename to ', 'rename from ')):
+if line.startswith(('rename to ', 'rename from ',
+'new file mode ', 'index ')):
 patchbuf += buf + line
 buf = ''
 elif line.startswith('--- '):
diff --git a/patchwork/tests/mail/0021-git-empty-new-file.mbox 
b/patchwork/tests/mail/0021-git-empty-new-file.mbox
new file mode 100644
index ..c3be48e6eb39
--- /dev/null
+++ b/patchwork/tests/mail/0021-git-empty-new-file.mbox
@@ -0,0 +1,32 @@
+From andrew.donnel...@au1.ibm.com Thu Feb 28 00:37:42 2019
+Delivered-To: d...@axtens.net
+Received: by 2002:a4a:2812:0:0:0:0:0 with SMTP id h18csp2242ooa;
+Wed, 27 Feb 2019 16:37:59 -0800 (PST)
+From: Andrew Donnellan 
+Subject: [snowpatch] [PATCH 1/3] Test commit; please ignore
+To: Daniel Axtens 
+Date: Thu, 28 Feb 2019 11:37:42 +1100
+User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101
+ Thunderbird/60.5.1
+MIME-Version: 1.0
+Content-Language: en-AU
+
+
+Doing some snowpatching.
+---
+  banana | 0
+  1 file changed, 0 insertions(+), 0 deletions(-)
+  create mode 100644 banana
+
+diff --git a/banana b/banana
+new file mode 100644
+index ..e69de29bb2d1
+-- 
+2.11.0
+
+___
+snowpatch mailing list
+snowpa...@lists.ozlabs.org
+https://lists.ozlabs.org/listinfo/snowpatch
+
+
diff --git a/patchwork/tests/test_parser.py b/patchwork/tests/test_parser.py
index 664edd5bab44..ddbcf5b15a19 100644
--- a/patchwork/tests/test_parser.py
+++ b/patchwork/tests/test_parser.py
@@ -583,6 +583,11 @@ class PatchParseTest(PatchTest):
 self.assertEqual(diff.count("\nrename to "), 2)
 self.assertEqual(diff.count('\n-a\n+b'), 1)
 
+def test_git_new_empty_file(self):
+diff, message = self._find_content('0021-git-empty-new-file.mbox')
+self.assertTrue(diff is not None)
+self.assertTrue(message is not None)
+
 def test_cvs_format(self):
 diff, message = self._find_content('0007-cvs-format-diff.mbox')
 self.assertTrue(diff.startswith('Index'))
-- 
2.19.1

___
Patchwork mailing list
Patchwork@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/patchwork