D2485: wireproto: don't expose legacy commands to version 2 of wire protocol
indygreg (Gregory Szorc)
phabricator at mercurial-scm.org
Sat Mar 3 00:14:06 UTC 2018
This revision was automatically updated to reflect the committed changes.
Closed by commit rHG6906547c8476: wireproto: don't expose legacy commands to version 2 of wire protocol (authored by indygreg, committed by ).
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D2485?vs=6336&id=6410
REVISION DETAIL
https://phab.mercurial-scm.org/D2485
AFFECTED FILES
mercurial/wireproto.py
tests/test-ssh-proto.t
CHANGE DETAILS
diff --git a/tests/test-ssh-proto.t b/tests/test-ssh-proto.t
--- a/tests/test-ssh-proto.t
+++ b/tests/test-ssh-proto.t
@@ -1273,6 +1273,33 @@
e> malformed handshake protocol: missing pairs 81\n
e> -\n
+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:
+
+ $ 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:
+
$ cd ..
Test listkeys for listing namespaces
diff --git a/mercurial/wireproto.py b/mercurial/wireproto.py
--- a/mercurial/wireproto.py
+++ b/mercurial/wireproto.py
@@ -740,6 +740,8 @@
return bytesresponse(';'.join(res))
+# TODO mark as version 1 transport only once interaction with
+# SSH handshake mechanism is figured out.
@wireprotocommand('between', 'pairs')
def between(repo, proto, pairs):
pairs = [decodelist(p, '-') for p in pairs.split(" ")]
@@ -760,7 +762,7 @@
return bytesresponse('\n'.join(heads))
- at wireprotocommand('branches', 'nodes')
+ at wireprotocommand('branches', 'nodes', transportpolicy=POLICY_V1_ONLY)
def branches(repo, proto, nodes):
nodes = decodelist(nodes)
r = []
@@ -835,16 +837,17 @@
def capabilities(repo, proto):
return bytesresponse(' '.join(_capabilities(repo, proto)))
- at wireprotocommand('changegroup', 'roots')
+ at wireprotocommand('changegroup', 'roots', transportpolicy=POLICY_V1_ONLY)
def changegroup(repo, proto, roots):
nodes = decodelist(roots)
outgoing = discovery.outgoing(repo, missingroots=nodes,
missingheads=repo.heads())
cg = changegroupmod.makechangegroup(repo, outgoing, '01', 'serve')
gen = iter(lambda: cg.read(32768), '')
return streamres(gen=gen)
- at wireprotocommand('changegroupsubset', 'bases heads')
+ at wireprotocommand('changegroupsubset', 'bases heads',
+ transportpolicy=POLICY_V1_ONLY)
def changegroupsubset(repo, proto, bases, heads):
bases = decodelist(bases)
heads = decodelist(heads)
To: indygreg, #hg-reviewers, durin42
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list