# HG changeset patch # User Augie Fackler # Date 1533180335 14400 # Node ID 57af5ee15b35cb6cffbebffd7f4511dac7848602 # Parent d9908399639861ad5860da7fefca4b2d3b4234fe linelog: port to Python 3 Differential Revision: https://phab.mercurial-scm.org/D4051 diff -r d99083996398 -r 57af5ee15b35 contrib/python3-whitelist --- a/contrib/python3-whitelist Sat Jul 28 17:42:36 2018 -0700 +++ b/contrib/python3-whitelist Wed Aug 01 23:25:35 2018 -0400 @@ -254,6 +254,7 @@ test-largefiles.t test-lfs-largefiles.t test-lfs-pointer.py +test-linelog.py test-linerange.py test-locate.t test-lock-badness.t diff -r d99083996398 -r 57af5ee15b35 mercurial/linelog.py --- a/mercurial/linelog.py Sat Jul 28 17:42:36 2018 -0700 +++ b/mercurial/linelog.py Wed Aug 01 23:25:35 2018 -0400 @@ -98,7 +98,7 @@ self._target = op2 def __str__(self): - return 'JGE %d %d' % (self._cmprev, self._target) + return r'JGE %d %d' % (self._cmprev, self._target) def __eq__(self, other): return (type(self) == type(other) @@ -122,7 +122,7 @@ self._target = op2 def __str__(self): - return 'JUMP %d' % (self._target) + return r'JUMP %d' % (self._target) def __eq__(self, other): return (type(self) == type(other) @@ -144,7 +144,7 @@ raise LineLogError("malformed EOF, op2 must be 0, got %d" % op2) def __str__(self): - return 'EOF' + return r'EOF' def __eq__(self, other): return type(self) == type(other) @@ -163,7 +163,7 @@ self._target = op2 def __str__(self): - return 'JL %d %d' % (self._cmprev, self._target) + return r'JL %d %d' % (self._cmprev, self._target) def __eq__(self, other): return (type(self) == type(other) @@ -188,7 +188,7 @@ self._origlineno = op2 def __str__(self): - return 'LINE %d %d' % (self._rev, self._origlineno) + return r'LINE %d %d' % (self._rev, self._origlineno) def __eq__(self, other): return (type(self) == type(other) @@ -245,8 +245,8 @@ hex(id(self)), self._maxrev, len(self._program)) def debugstr(self): - fmt = '%%%dd %%s' % len(str(len(self._program))) - return '\n'.join( + fmt = r'%%%dd %%s' % len(str(len(self._program))) + return pycompat.sysstr('\n').join( fmt % (idx, i) for idx, i in enumerate(self._program[1:], 1)) @classmethod diff -r d99083996398 -r 57af5ee15b35 tests/test-linelog.py --- a/tests/test-linelog.py Sat Jul 28 17:42:36 2018 -0700 +++ b/tests/test-linelog.py Wed Aug 01 23:25:35 2018 -0400 @@ -41,12 +41,12 @@ self.assertEqual(linelog.linelog.fromdata(enc), ll) # This encoding matches the encoding used by hg-experimental's # linelog file, or is supposed to if it doesn't. - self.assertEqual(enc, ('\x00\x00\x01\x90\x00\x00\x00\x06' - '\x00\x00\x00\xa4\x00\x00\x00*' - '\x00\x00\x00\x00\x00\x00\x00+' - '\x00\x00\x00\x00\x00\x00\x00\x00' - '\x00\x00\x00\xb1\x00\x00\x00-' - '\x00\x00\x00\xba\x00\x00\x00/')) + self.assertEqual(enc, (b'\x00\x00\x01\x90\x00\x00\x00\x06' + b'\x00\x00\x00\xa4\x00\x00\x00*' + b'\x00\x00\x00\x00\x00\x00\x00+' + b'\x00\x00\x00\x00\x00\x00\x00\x00' + b'\x00\x00\x00\xb1\x00\x00\x00-' + b'\x00\x00\x00\xba\x00\x00\x00/')) def testsimpleedits(self): ll = linelog.linelog() @@ -94,21 +94,21 @@ def testparseclinelogfile(self): # This data is what the replacements in testsimpleedits # produce when fed to the original linelog.c implementation. - data = ('\x00\x00\x00\x0c\x00\x00\x00\x0f' - '\x00\x00\x00\x00\x00\x00\x00\x02' - '\x00\x00\x00\x05\x00\x00\x00\x06' - '\x00\x00\x00\x06\x00\x00\x00\x00' - '\x00\x00\x00\x00\x00\x00\x00\x07' - '\x00\x00\x00\x06\x00\x00\x00\x02' - '\x00\x00\x00\x00\x00\x00\x00\x00' - '\x00\x00\x00\t\x00\x00\x00\t' - '\x00\x00\x00\x00\x00\x00\x00\x0c' - '\x00\x00\x00\x08\x00\x00\x00\x05' - '\x00\x00\x00\x06\x00\x00\x00\x01' - '\x00\x00\x00\x00\x00\x00\x00\x05' - '\x00\x00\x00\x0c\x00\x00\x00\x05' - '\x00\x00\x00\n\x00\x00\x00\x01' - '\x00\x00\x00\x00\x00\x00\x00\t') + data = (b'\x00\x00\x00\x0c\x00\x00\x00\x0f' + b'\x00\x00\x00\x00\x00\x00\x00\x02' + b'\x00\x00\x00\x05\x00\x00\x00\x06' + b'\x00\x00\x00\x06\x00\x00\x00\x00' + b'\x00\x00\x00\x00\x00\x00\x00\x07' + b'\x00\x00\x00\x06\x00\x00\x00\x02' + b'\x00\x00\x00\x00\x00\x00\x00\x00' + b'\x00\x00\x00\t\x00\x00\x00\t' + b'\x00\x00\x00\x00\x00\x00\x00\x0c' + b'\x00\x00\x00\x08\x00\x00\x00\x05' + b'\x00\x00\x00\x06\x00\x00\x00\x01' + b'\x00\x00\x00\x00\x00\x00\x00\x05' + b'\x00\x00\x00\x0c\x00\x00\x00\x05' + b'\x00\x00\x00\n\x00\x00\x00\x01' + b'\x00\x00\x00\x00\x00\x00\x00\t') llc = linelog.linelog.fromdata(data) self.assertEqual([(l.rev, l.linenum) for l in llc.annotate(1)], [(1, 0),