--- 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 = {}