Merge lp:~jelmer/brz/git-sig-base64 into lp:brz/3.1

Proposed by Jelmer Vernooij
Status: Merged
Approved by: Jelmer Vernooij
Approved revision: no longer in the source branch.
Merge reported by: The Breezy Bot
Merged at revision: not available
Proposed branch: lp:~jelmer/brz/git-sig-base64
Merge into: lp:brz/3.1
Diff against target: 52 lines (+14/-4)
2 files modified
breezy/git/mapping.py (+11/-4)
doc/en/release-notes/brz-3.1.txt (+3/-0)
To merge this branch: bzr merge lp:~jelmer/brz/git-sig-base64
Reviewer Review Type Date Requested Status
Jelmer Vernooij Approve
Review via email: mp+381348@code.launchpad.net

Commit message

Cope with non-ascii characters in git gpg signatures.

Description of the change

Cope with non-ascii characters in git gpg signatures.

To post a comment you must log in.
Revision history for this message
Jelmer Vernooij (jelmer) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'breezy/git/mapping.py'
2--- breezy/git/mapping.py 2019-10-28 01:38:39 +0000
3+++ breezy/git/mapping.py 2020-03-29 02:03:52 +0000
4@@ -332,7 +332,9 @@
5 commit.author_timezone = commit.commit_timezone
6 if u'git-gpg-signature' in rev.properties:
7 commit.gpgsig = rev.properties[u'git-gpg-signature'].encode(
8- 'ascii')
9+ 'utf-8')
10+ if u'git-gpg-signature-b64' in rev.properties:
11+ commit.gpgsig = base64.b64decode(rev.properties[u'git-gpg-signature-b64'])
12 commit.message = self._encode_commit_message(rev, rev.message,
13 encoding)
14 if not isinstance(commit.message, bytes):
15@@ -345,7 +347,8 @@
16 mapping_properties = set(
17 [u'author', u'author-timezone', u'author-timezone-neg-utc',
18 u'commit-timezone-neg-utc', u'git-implicit-encoding',
19- u'git-gpg-signature', u'git-explicit-encoding',
20+ u'git-gpg-signature', u'git-gpg-signature-b64',
21+ u'git-explicit-encoding',
22 u'author-timestamp', u'file-modes'])
23 for k, v in viewitems(rev.properties):
24 if k not in mapping_properties:
25@@ -427,8 +430,12 @@
26 if commit._commit_timezone_neg_utc:
27 rev.properties[u'commit-timezone-neg-utc'] = ""
28 if commit.gpgsig:
29- rev.properties[u'git-gpg-signature'] = commit.gpgsig.decode(
30- 'ascii')
31+ try:
32+ rev.properties[u'git-gpg-signature'] = commit.gpgsig.decode(
33+ 'utf-8')
34+ except UnicodeDecodeError:
35+ rev.properties[u'git-gpg-signature-b64'] = base64.b64encode(
36+ commit.gpgsig)
37 if commit.mergetag:
38 for i, tag in enumerate(commit.mergetag):
39 rev.properties[u'git-mergetag-%d' % i] = tag.as_raw_string()
40
41=== modified file 'doc/en/release-notes/brz-3.1.txt'
42--- doc/en/release-notes/brz-3.1.txt 2020-03-26 13:02:36 +0000
43+++ doc/en/release-notes/brz-3.1.txt 2020-03-29 02:03:52 +0000
44@@ -164,6 +164,9 @@
45 * Fix backwards compatibility with Bazaar by supporting the
46 $BZR_EMAIL variable. (Jelmer Vernooij, #1869178)
47
48+* Cope with non-ascii characters in Git signatures.
49+ (Jelmer Vernooij, #1869533)
50+
51 Documentation
52 *************
53

Subscribers

People subscribed via source and target branches