# HG changeset patch # User Adrian Buehlmann # Date 1349042036 -7200 # Node ID 0c6de45e12127d5f64327775f734cedb5d5ef2ff # Parent fb458b3e72fc220d02b9394a0951842cb406002a store: optimize _pathencode by checking the length of the unencoded path If the input path is already longer than _maxstorepathlen, then we can skip doing the basic encoding (encodedir, _encodefname and _auxencode) and directly proceed to the hashed encoding. Those encodings, if at all, will make the path only longer. diff -r fb458b3e72fc -r 0c6de45e1212 mercurial/store.py --- a/mercurial/store.py Sun Sep 30 23:53:56 2012 +0200 +++ b/mercurial/store.py Sun Sep 30 23:53:56 2012 +0200 @@ -255,6 +255,8 @@ return res def _pathencode(path): + if len(path) > _maxstorepathlen: + return None ef = _encodefname(encodedir(path)).split('/') res = '/'.join(_auxencode(ef, True)) if len(res) > _maxstorepathlen: