changeset 37540:693cb3768943

wireproto: make @wireprotocommand version 1 only by default For backwards compatibility reasons. We want extension provided commands to opt in to version 2 rather than get inherited automatically. This will facilitate a clean break between the protocols. As part of this, we duplicate some commands used in tests so there are different command handlers per transport. Differential Revision: https://phab.mercurial-scm.org/D3207
author Gregory Szorc <gregory.szorc@gmail.com>
date Mon, 09 Apr 2018 11:57:12 -0700
parents 4a0d58d6faba
children 3e5e37204b32
files mercurial/wireproto.py tests/wireprotohelpers.sh
diffstat 2 files changed, 12 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/wireproto.py	Mon Apr 09 11:54:31 2018 -0700
+++ b/mercurial/wireproto.py	Mon Apr 09 11:57:12 2018 -0700
@@ -707,7 +707,7 @@
 # For version 2 transports.
 commandsv2 = commanddict()
 
-def wireprotocommand(name, args='', transportpolicy=POLICY_ALL,
+def wireprotocommand(name, args='', transportpolicy=POLICY_V1_ONLY,
                      permission='push'):
     """Decorator to declare a wire protocol command.
 
--- a/tests/wireprotohelpers.sh	Mon Apr 09 11:54:31 2018 -0700
+++ b/tests/wireprotohelpers.sh	Mon Apr 09 11:57:12 2018 -0700
@@ -16,12 +16,22 @@
 )
 
 @wireproto.wireprotocommand('customreadonly', permission='pull')
-def customreadonly(repo, proto):
+def customreadonlyv1(repo, proto):
+    return wireprototypes.bytesresponse(b'customreadonly bytes response')
+
+@wireproto.wireprotocommand('customreadonly', permission='pull',
+                            transportpolicy=wireproto.POLICY_V2_ONLY)
+def customreadonlyv2(repo, proto):
     return wireprototypes.bytesresponse(b'customreadonly bytes response')
 
 @wireproto.wireprotocommand('customreadwrite', permission='push')
 def customreadwrite(repo, proto):
     return wireprototypes.bytesresponse(b'customreadwrite bytes response')
+
+@wireproto.wireprotocommand('customreadwrite', permission='push',
+                            transportpolicy=wireproto.POLICY_V2_ONLY)
+def customreadwritev2(repo, proto):
+    return wireprototypes.bytesresponse(b'customreadwrite bytes response')
 EOF
 
 cat >> $HGRCPATH << EOF