Mercurial > hg-stable
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