D6185: changelog: pass default extras into decodeextra()
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Tue Apr 2 19:30:46 UTC 2019
martinvonz created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
I want to use the function with a different default (empty dict, to be
specific) and this enables that.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D6185
AFFECTED FILES
mercurial/changelog.py
CHANGE DETAILS
diff --git a/mercurial/changelog.py b/mercurial/changelog.py
--- a/mercurial/changelog.py
+++ b/mercurial/changelog.py
@@ -54,18 +54,18 @@
text = text.replace('\n', '')
return stringutil.unescapestr(text)
-def decodeextra(text):
+def decodeextra(text, default):
"""
>>> from .pycompat import bytechr as chr
- >>> sorted(decodeextra(encodeextra({b'foo': b'bar', b'baz': chr(0) + b'2'})
- ... ).items())
+ >>> sorted(decodeextra(encodeextra({b'foo': b'bar', b'baz': chr(0) + b'2'}),
+ ... _defaultextra).items())
[('baz', '\\x002'), ('branch', 'default'), ('foo', 'bar')]
>>> sorted(decodeextra(encodeextra({b'foo': b'bar',
- ... b'baz': chr(92) + chr(0) + b'2'})
- ... ).items())
+ ... b'baz': chr(92) + chr(0) + b'2'}),
+ ... _defaultextra).items())
[('baz', '\\\\\\x002'), ('branch', 'default'), ('foo', 'bar')]
"""
- extra = _defaultextra.copy()
+ extra = default
for l in text.split('\0'):
if l:
k, v = _string_unescape(l).split(':', 1)
@@ -275,7 +275,7 @@
if raw is None:
return _defaultextra
- return decodeextra(raw)
+ return decodeextra(raw, _defaultextra.copy())
@property
def files(self):
To: martinvonz, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list