# HG changeset patch # User Adrian Buehlmann # Date 2012-09-15 19:42:43 # Node ID 7ed972a9e7a9e5ecf33ce1634a91926a1067da9a # Parent f53a7b256ca690d22259e966cf4ef52938bd58aa store: optimize _auxencode() by assigning to the list elements of the path diff --git a/mercurial/store.py b/mercurial/store.py --- a/mercurial/store.py +++ b/mercurial/store.py @@ -141,11 +141,12 @@ def _auxencode(path, dotencode): >>> _auxencode(' .foo', True) '~20.foo' ''' - res = [] - for n in path.split('/'): + res = path.split('/') + for i, n in enumerate(res): if n: if dotencode and n[0] in '. ': n = "~%02x" % ord(n[0]) + n[1:] + res[i] = n else: l = n.find('.') if l == -1: @@ -156,10 +157,11 @@ def _auxencode(path, dotencode): # encode third letter ('aux' -> 'au~78') ec = "~%02x" % ord(n[2]) n = n[0:2] + ec + n[3:] + res[i] = n if n[-1] in '. ': # encode last period or space ('foo...' -> 'foo..~2e') n = n[:-1] + "~%02x" % ord(n[-1]) - res.append(n) + res[i] = n return '/'.join(res) _maxstorepathlen = 120