# HG changeset patch # User Pulkit Goyal <7895pulkit@gmail.com> # Date 2017-05-31 18:30:10 # Node ID e7eb7494e98dba2d5a4bfb0c93c3ebbf3848f295 # Parent a8262b7784f91d762a0f3dfedddbe2c92722aa1a py3: make sure we return strings from __str__ and __repr__ On Python 3: >>> class abc: ... def __repr__(self): ... return b'abc' ... >>> abc() Traceback (most recent call last): File "", line 1, in TypeError: __repr__ returned non-string (type bytes) >>> class abc: ... def __str__(self): ... return b'abc' ... >>> str(abc()) Traceback (most recent call last): File "", line 1, in TypeError: __str__ returned non-string (type bytes) So the __str__ and __repr__ must return strings. diff --git a/mercurial/context.py b/mercurial/context.py --- a/mercurial/context.py +++ b/mercurial/context.py @@ -77,7 +77,7 @@ class basectx(object): return self.rev() def __repr__(self): - return "<%s %s>" % (type(self).__name__, str(self)) + return r"<%s %s>" % (type(self).__name__, str(self)) def __eq__(self, other): try: @@ -1403,7 +1403,7 @@ class committablectx(basectx): self._extra['branch'] = 'default' def __str__(self): - return str(self._parents[0]) + "+" + return str(self._parents[0]) + r"+" def __nonzero__(self): return True