mercurial/wireproto.py
changeset 20906 7a634b34fc91
parent 20905 167047ba3cfa
child 20907 aedec880e095
--- a/mercurial/wireproto.py	Fri Mar 28 14:24:13 2014 -0700
+++ b/mercurial/wireproto.py	Fri Mar 28 14:30:11 2014 -0700
@@ -471,6 +471,16 @@
                          % (cmd, ",".join(others)))
     return opts
 
+# list of commands
+commands = {}
+
+def wireprotocommand(name, args=''):
+    """decorator for wireprotocol command"""
+    def register(func):
+        commands[name] = (func, args)
+        return func
+    return register
+
 def batch(repo, proto, cmds, others):
     repo = repo.filtered("served")
     res = []
@@ -770,7 +780,7 @@
         fp.close()
         os.unlink(tempname)
 
-commands = {
+commands.update({
     'batch': (batch, 'cmds *'),
     'between': (between, 'pairs'),
     'branchmap': (branchmap, ''),
@@ -788,4 +798,4 @@
     'pushkey': (pushkey, 'namespace key old new'),
     'stream_out': (stream, ''),
     'unbundle': (unbundle, 'heads'),
-}
+})