diff -r 9cc55b743713 -r 57875cf423c9 mercurial/pushkey.py --- a/mercurial/pushkey.py Fri Oct 04 15:53:45 2019 -0400 +++ b/mercurial/pushkey.py Sat Oct 05 10:29:34 2019 -0400 @@ -14,6 +14,7 @@ phases, ) + def _nslist(repo): n = {} for k in _namespaces: @@ -22,36 +23,45 @@ n.pop('obsolete') return n -_namespaces = {"namespaces": (lambda *x: False, _nslist), - "bookmarks": (bookmarks.pushbookmark, bookmarks.listbookmarks), - "phases": (phases.pushphase, phases.listphases), - "obsolete": (obsolete.pushmarker, obsolete.listmarkers), - } + +_namespaces = { + "namespaces": (lambda *x: False, _nslist), + "bookmarks": (bookmarks.pushbookmark, bookmarks.listbookmarks), + "phases": (phases.pushphase, phases.listphases), + "obsolete": (obsolete.pushmarker, obsolete.listmarkers), +} + def register(namespace, pushkey, listkeys): _namespaces[namespace] = (pushkey, listkeys) + def _get(namespace): return _namespaces.get(namespace, (lambda *x: False, lambda *x: {})) + def push(repo, namespace, key, old, new): '''should succeed iff value was old''' pk = _get(namespace)[0] return pk(repo, key, old, new) + def list(repo, namespace): '''return a dict''' lk = _get(namespace)[1] return lk(repo) + encode = encoding.fromlocal decode = encoding.tolocal + def encodekeys(keys): """encode the content of a pushkey namespace for exchange over the wire""" return '\n'.join(['%s\t%s' % (encode(k), encode(v)) for k, v in keys]) + def decodekeys(data): """decode the content of a pushkey namespace from exchange over the wire""" result = {}