diff mercurial/wireproto.py @ 37782:99accae4cc59

wireproto: reimplement dispatch() for version 2 server The code is minimal. I'm trying to create a cleaner break between version 1 and version 2 server code. Differential Revision: https://phab.mercurial-scm.org/D3397
author Gregory Szorc <gregory.szorc@gmail.com>
date Mon, 16 Apr 2018 22:00:52 -0700
parents 352932a11905
children 9d818539abfa
line wrap: on
line diff
--- a/mercurial/wireproto.py	Mon Apr 16 21:52:33 2018 -0700
+++ b/mercurial/wireproto.py	Mon Apr 16 22:00:52 2018 -0700
@@ -69,20 +69,10 @@
 def dispatch(repo, proto, command):
     repo = getdispatchrepo(repo, proto, command)
 
-    transportversion = wireprototypes.TRANSPORTS[proto.name]['version']
-    commandtable = commandsv2 if transportversion == 2 else commands
-    func, spec = commandtable[command]
-
+    func, spec = commands[command]
     args = proto.getargs(spec)
 
-    # Version 1 protocols define arguments as a list. Version 2 uses a dict.
-    if isinstance(args, list):
-        return func(repo, proto, *args)
-    elif isinstance(args, dict):
-        return func(repo, proto, **args)
-    else:
-        raise error.ProgrammingError('unexpected type returned from '
-                                     'proto.getargs(): %s' % type(args))
+    return func(repo, proto, *args)
 
 def options(cmd, keys, others):
     opts = {}