D3207: wireproto: make @wireprotocommand version 1 only by default

indygreg (Gregory Szorc) phabricator at mercurial-scm.org
Mon Apr 9 18:58:42 UTC 2018


indygreg created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  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.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D3207

AFFECTED FILES
  mercurial/wireproto.py
  tests/wireprotohelpers.sh

CHANGE DETAILS

diff --git a/tests/wireprotohelpers.sh b/tests/wireprotohelpers.sh
--- a/tests/wireprotohelpers.sh
+++ b/tests/wireprotohelpers.sh
@@ -16,12 +16,22 @@
 )
 
 @wireproto.wireprotocommand('customreadonly', permission='pull')
-def customreadonly(repo, proto):
+def customreadonlyv1(repo, proto):
+    return wireprototypes.bytesresponse(b'customreadonly bytes response')
+
+ at 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')
+
+ at 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
diff --git a/mercurial/wireproto.py b/mercurial/wireproto.py
--- a/mercurial/wireproto.py
+++ b/mercurial/wireproto.py
@@ -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.
 



To: indygreg, #hg-reviewers
Cc: mercurial-devel


More information about the Mercurial-devel mailing list