# HG changeset patch # User Siddharth Agarwal # Date 2014-10-04 01:45:56 # 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 --git a/mercurial/encoding.py b/mercurial/encoding.py --- a/mercurial/encoding.py +++ b/mercurial/encoding.py @@ -270,8 +270,7 @@ asciilower = getattr(parsers, 'asciilowe 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: