# HG changeset patch # User Adrian Buehlmann # Date 1347990719 -7200 # Node ID cbc180cfd60bc9088a10339fffb8c6a545310410 # Parent 77624012352502b96e72e6b67f28e473fbd63541 store: reuse direncoded path in _hybridencode For a netbeans clone on Windows 7 x64: Before: $ hg perffncacheencode ! wall 3.516000 comb 3.525623 user 3.525623 sys 0.000000 (best of 3) After: $ hg perffncacheencode ! wall 3.443000 comb 3.447622 user 3.447622 sys 0.000000 (best of 3) diff -r 776240123525 -r cbc180cfd60b mercurial/store.py --- a/mercurial/store.py Tue Sep 18 19:51:48 2012 +0200 +++ b/mercurial/store.py Tue Sep 18 19:51:59 2012 +0200 @@ -215,10 +215,10 @@ The string 'data/' at the beginning is replaced with 'dh/', if the hashed encoding was used. ''' - ef = encodefilename(path).split('/') + path = encodedir(path) + ef = _encodefname(path).split('/') res = '/'.join(_auxencode(ef, dotencode)) if len(res) > _maxstorepathlen: - path = encodedir(path) digest = _sha(path).hexdigest() le = lowerencode(path).split('/')[1:] parts = _auxencode(le, dotencode)