changeset 17693:0c6de45e1212

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.
author Adrian Buehlmann <adrian@cadifra.com>
date Sun, 30 Sep 2012 23:53:56 +0200
parents fb458b3e72fc
children fa714f3ed298
files mercurial/store.py
diffstat 1 files changed, 2 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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: