store: optimize _pathencode by checking the length of the unencoded path
authorAdrian Buehlmann <adrian@cadifra.com>
Sun, 30 Sep 2012 23:53:56 +0200
changeset 17693 0c6de45e1212
parent 17692 fb458b3e72fc
child 17694 fa714f3ed298
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.
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: