diff -r 400dfded8a29 -r 8f42d8c412c8 mercurial/store.py --- a/mercurial/store.py Sat Oct 08 08:45:28 2016 -0700 +++ b/mercurial/store.py Sat Oct 08 08:54:05 2016 -0700 @@ -16,6 +16,7 @@ from . import ( error, parsers, + pycompat, scmutil, util, ) @@ -98,11 +99,20 @@ 'the\\x07quick\\xadshot' ''' e = '_' - cmap = dict([(chr(x), chr(x)) for x in xrange(127)]) + if pycompat.ispy3: + xchr = lambda x: bytes([x]) + asciistr = bytes(xrange(127)) + else: + xchr = chr + asciistr = map(chr, xrange(127)) + capitals = list(range(ord("A"), ord("Z") + 1)) + + cmap = {x:x for x in asciistr} for x in _reserved(): - cmap[chr(x)] = "~%02x" % x - for x in list(range(ord("A"), ord("Z") + 1)) + [ord(e)]: - cmap[chr(x)] = e + chr(x).lower() + cmap[xchr(x)] = "~%02x" % x + for x in capitals + [ord(e)]: + cmap[xchr(x)] = e + xchr(x).lower() + dmap = {} for k, v in cmap.iteritems(): dmap[v] = k