[PATCH 04 of 10] store: optimize _auxencode() by assigning to the list elements of the path
Adrian Buehlmann
adrian at cadifra.com
Sat Sep 15 16:01:45 CDT 2012
# HG changeset patch
# User Adrian Buehlmann <adrian at cadifra.com>
# Date 1347738163 -7200
# 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 @@
>>> _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 @@
# 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
More information about the Mercurial-devel
mailing list