# HG changeset patch # User Siddharth Agarwal # Date 1412387156 25200 # Node ID d9585dda63c37cc731b0664e492b083a8e720dde # Parent 80f2b63dd83a1c22ae056a2522571c153e0bebb8 encoding.lower: use fast ASCII lower This benefits, among other things, the case collision auditor. On a Linux system with a large real-world repo where all filenames are ASCII, hg perfcca: before: wall 0.260157 comb 0.270000 user 0.230000 sys 0.040000 (best of 38) after: wall 0.164616 comb 0.160000 user 0.160000 sys 0.000000 (best of 54) diff -r 80f2b63dd83a -r d9585dda63c3 mercurial/encoding.py --- a/mercurial/encoding.py Fri Oct 03 18:42:39 2014 -0700 +++ b/mercurial/encoding.py Fri Oct 03 18:45:56 2014 -0700 @@ -270,8 +270,7 @@ def lower(s): "best-effort encoding-aware case-folding of local string s" try: - s.decode('ascii') # throw exception for non-ASCII character - return s.lower() + return asciilower(s) except UnicodeDecodeError: pass try: