wireproto: mark SSHv2 as a version 1 transport
The version component is used for filtering/routing wire protocol
commands to their proper handler. The actual version 2 of the wire
protocol commands will use a different encoding of responses. We
already have tests using the version 2 SSH transport and version 2
of the wire protocol commands won't be implemented atomically.
This commit marks the SSHv2 transport as version 1 so it will
still invoke the version 1 commands. Once the commands are all
implemented in version 2, we can restore its proper behavior.
Some tests had to be disabled as a result of this change.
Differential Revision: https://phab.mercurial-scm.org/D2981
--- a/mercurial/wireprototypes.py Wed Mar 28 14:05:29 2018 -0700
+++ b/mercurial/wireprototypes.py Wed Mar 28 10:12:02 2018 -0700
@@ -22,7 +22,8 @@
},
SSHV2: {
'transport': 'ssh',
- 'version': 2,
+ # TODO mark as version 2 once all commands are implemented.
+ 'version': 1,
},
'http-v1': {
'transport': 'http',
--- a/tests/test-ssh-proto.t Wed Mar 28 14:05:29 2018 -0700
+++ b/tests/test-ssh-proto.t Wed Mar 28 10:12:02 2018 -0700
@@ -1098,9 +1098,9 @@
i> write(6) -> 6:
i> hello\n
o> readline() -> 4:
- o> 385\n
- o> readline() -> 385:
- o> capabilities: lookup branchmap pushkey known getbundle unbundlehash streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN batch\n
+ o> 403\n
+ o> readline() -> 403:
+ o> capabilities: lookup branchmap pushkey known getbundle unbundlehash changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN batch\n
Multiple upgrades is not allowed
@@ -1279,30 +1279,32 @@
Legacy commands are not exposed to version 2 of protocol
- $ hg --config experimental.sshpeer.advertise-v2=true debugwireproto --localssh << EOF
- > command branches
- > nodes 0000000000000000000000000000000000000000
- > EOF
- creating ssh peer from handshake results
- sending branches command
- response:
+TODO re-enable these once we're back to actually using v2 commands
+
+$ hg --config experimental.sshpeer.advertise-v2=true debugwireproto --localssh << EOF
+> command branches
+> nodes 0000000000000000000000000000000000000000
+> EOF
+creating ssh peer from handshake results
+sending branches command
+response:
- $ hg --config experimental.sshpeer.advertise-v2=true debugwireproto --localssh << EOF
- > command changegroup
- > roots 0000000000000000000000000000000000000000
- > EOF
- creating ssh peer from handshake results
- sending changegroup command
- response:
+$ hg --config experimental.sshpeer.advertise-v2=true debugwireproto --localssh << EOF
+> command changegroup
+> roots 0000000000000000000000000000000000000000
+> EOF
+creating ssh peer from handshake results
+sending changegroup command
+response:
- $ hg --config experimental.sshpeer.advertise-v2=true debugwireproto --localssh << EOF
- > command changegroupsubset
- > bases 0000000000000000000000000000000000000000
- > heads 0000000000000000000000000000000000000000
- > EOF
- creating ssh peer from handshake results
- sending changegroupsubset command
- response:
+$ hg --config experimental.sshpeer.advertise-v2=true debugwireproto --localssh << EOF
+> command changegroupsubset
+> bases 0000000000000000000000000000000000000000
+> heads 0000000000000000000000000000000000000000
+> EOF
+creating ssh peer from handshake results
+sending changegroupsubset command
+response:
$ cd ..