gcc-changelog/git_email.py: Support older unidiff.PatchSet

Message ID 780f0808-44d4-9d95-c1a9-d408f1475741@codesourcery.com
State Accepted
Headers
Series gcc-changelog/git_email.py: Support older unidiff.PatchSet |

Checks

Context Check Description
snail/gcc-patch-check success Github commit url

Commit Message

Tobias Burnus Dec. 16, 2022, 9:18 a.m. UTC
  Another backward compatibility issue - failed here on Ubuntu 20.04 which
is old but not ancient.

OK for mainline?

Tobias
-----------------
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955
  

Comments

Martin Liška Dec. 16, 2022, 9:27 a.m. UTC | #1
On 12/16/22 10:18, Tobias Burnus wrote:
> Another backward compatibility issue - failed here on Ubuntu 20.04 which
> is old but not ancient.
> 
> OK for mainline?

It's fine, thanks for the workaround!

Martin

> 
> Tobias
> -----------------
> Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955
  

Patch

gcc-changelog/git_email.py: Support older unidiff.PatchSet

Commit "unidiff: use newline='\n' argument",
r13-4603-gb045179973161115c7ea029b2788f5156fc55cda, added support CR
on a line, but that broke support for older unidiff.PatchSet.

This patch uses a fallback for git_email.py (drop argument) if not
available (TypeError exception) but keeps using it in test_email.py
unconditionally.

contrib/ChangeLog:

	* gcc-changelog/git_email.py (GitEmail:__init__): Support older
	unidiff.PatchSet that do not have a newline= argument
	of from_filename.

diff --git a/contrib/gcc-changelog/git_email.py b/contrib/gcc-changelog/git_email.py
index ef50ebfb7fd..093c887ba4c 100755
--- a/contrib/gcc-changelog/git_email.py
+++ b/contrib/gcc-changelog/git_email.py
@@ -39,7 +39,11 @@  unidiff_supports_renaming = hasattr(PatchedFile(), 'is_rename')
 class GitEmail(GitCommit):
     def __init__(self, filename):
         self.filename = filename
-        diff = PatchSet.from_filename(filename, newline='\n')
+        try:
+          diff = PatchSet.from_filename(filename, newline='\n')
+        except TypeError:
+          # Older versions don't have the newline argument
+          diff = PatchSet.from_filename(filename)
         date = None
         author = None
         subject = ''