# HG changeset patch # User Pulkit Goyal <7895pulkit@gmail.com> # Date 1496255410 -19800 # 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 -r a8262b7784f9 -r e7eb7494e98d mercurial/context.py --- a/mercurial/context.py Wed May 31 23:48:52 2017 +0530 +++ b/mercurial/context.py Thu Jun 01 00:00:10 2017 +0530 @@ -77,7 +77,7 @@ 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 @@ self._extra['branch'] = 'default' def __str__(self): - return str(self._parents[0]) + "+" + return str(self._parents[0]) + r"+" def __nonzero__(self): return True