# HG changeset patch # User Adrian Buehlmann # Date 1348056023 -7200 # Node ID ae103510f6aa985ed37c300296b74e5c674e33f7 # Parent 448e6ed7c5572c2d7a56cac20b970bee437c442d store: add a fallback _pathencode Python function which does the equivalent of parsers.pathencode, so it can be used as a default diff -r 448e6ed7c557 -r ae103510f6aa mercurial/store.py --- a/mercurial/store.py Wed Sep 19 13:58:51 2012 +0200 +++ b/mercurial/store.py Wed Sep 19 14:00:23 2012 +0200 @@ -254,20 +254,24 @@ res = _hashencode(path, dotencode) return res +def _pathencode(path): + ef = _encodefname(encodedir(path)).split('/') + res = '/'.join(_auxencode(ef, True)) + if len(res) > _maxstorepathlen: + return None + return res + +_pathencode = getattr(parsers, 'pathencode', _pathencode) + +def _dothybridencode(f): + ef = _pathencode(f) + if ef is None: + return _hashencode(encodedir(f), True) + return ef + def _plainhybridencode(f): return _hybridencode(f, False) -_pathencode = getattr(parsers, 'pathencode', None) -if _pathencode: - def _dothybridencode(f): - ef = _pathencode(f) - if ef is None: - return _hashencode(encodedir(f), True) - return ef -else: - def _dothybridencode(f): - return _hybridencode(f, True) - def _calcmode(path): try: # files in .hg/ will be created using this mode