test-wireproto-command-capabilities.t
750 lines
| 28.8 KiB
| text/troff
|
Tads3Lexer
/ tests / test-wireproto-command-capabilities.t
Kyle Lippincott
|
r38041 | #require no-chg | ||
Gregory Szorc
|
r37551 | $ . $TESTDIR/wireprotohelpers.sh | ||
$ hg init server | ||||
Gregory Szorc
|
r37840 | |||
zstd isn't present in plain builds. Make tests easier by removing | ||||
zstd from the equation. | ||||
$ cat >> server/.hg/hgrc << EOF | ||||
> [server] | ||||
> compressionengines = zlib | ||||
> EOF | ||||
Gregory Szorc
|
r37575 | $ hg -R server serve -p $HGPORT -d --pid-file hg.pid -E error.log | ||
$ cat hg.pid > $DAEMON_PIDS | ||||
A normal capabilities request is serviced for version 1 | ||||
$ sendhttpraw << EOF | ||||
> httprequest GET ?cmd=capabilities | ||||
> user-agent: test | ||||
> EOF | ||||
using raw connection to peer | ||||
s> GET /?cmd=capabilities HTTP/1.1\r\n | ||||
s> Accept-Encoding: identity\r\n | ||||
s> user-agent: test\r\n | ||||
s> host: $LOCALIP:$HGPORT\r\n (glob) | ||||
s> \r\n | ||||
s> makefile('rb', None) | ||||
s> HTTP/1.1 200 Script output follows\r\n | ||||
s> Server: testing stub value\r\n | ||||
s> Date: $HTTP_DATE$\r\n | ||||
s> Content-Type: application/mercurial-0.1\r\n | ||||
Augie Fackler
|
r37838 | s> Content-Length: *\r\n (glob) | ||
Gregory Szorc
|
r37575 | s> \r\n | ||
Boris Feld
|
r40951 | s> batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset compression=$BUNDLE2_COMPRESSIONS$ getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash | ||
Gregory Szorc
|
r37575 | |||
A proper request without the API server enabled returns the legacy response | ||||
$ sendhttpraw << EOF | ||||
> httprequest GET ?cmd=capabilities | ||||
> user-agent: test | ||||
> x-hgupgrade-1: foo | ||||
> x-hgproto-1: cbor | ||||
> EOF | ||||
using raw connection to peer | ||||
s> GET /?cmd=capabilities HTTP/1.1\r\n | ||||
s> Accept-Encoding: identity\r\n | ||||
s> user-agent: test\r\n | ||||
s> x-hgproto-1: cbor\r\n | ||||
s> x-hgupgrade-1: foo\r\n | ||||
s> host: $LOCALIP:$HGPORT\r\n (glob) | ||||
s> \r\n | ||||
s> makefile('rb', None) | ||||
s> HTTP/1.1 200 Script output follows\r\n | ||||
s> Server: testing stub value\r\n | ||||
s> Date: $HTTP_DATE$\r\n | ||||
s> Content-Type: application/mercurial-0.1\r\n | ||||
Augie Fackler
|
r37838 | s> Content-Length: *\r\n (glob) | ||
Gregory Szorc
|
r37575 | s> \r\n | ||
Boris Feld
|
r40951 | s> batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset compression=$BUNDLE2_COMPRESSIONS$ getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash | ||
Gregory Szorc
|
r37575 | |||
Restart with just API server enabled. This enables serving the new format. | ||||
$ killdaemons.py | ||||
$ cat error.log | ||||
$ cat >> server/.hg/hgrc << EOF | ||||
> [experimental] | ||||
> web.apiserver = true | ||||
> EOF | ||||
Gregory Szorc
|
r37551 | $ hg -R server serve -p $HGPORT -d --pid-file hg.pid -E error.log | ||
$ cat hg.pid > $DAEMON_PIDS | ||||
Gregory Szorc
|
r37575 | X-HgUpgrade-<N> without CBOR advertisement uses legacy response | ||
$ sendhttpraw << EOF | ||||
> httprequest GET ?cmd=capabilities | ||||
> user-agent: test | ||||
> x-hgupgrade-1: foo bar | ||||
> EOF | ||||
using raw connection to peer | ||||
s> GET /?cmd=capabilities HTTP/1.1\r\n | ||||
s> Accept-Encoding: identity\r\n | ||||
s> user-agent: test\r\n | ||||
s> x-hgupgrade-1: foo bar\r\n | ||||
s> host: $LOCALIP:$HGPORT\r\n (glob) | ||||
s> \r\n | ||||
s> makefile('rb', None) | ||||
s> HTTP/1.1 200 Script output follows\r\n | ||||
s> Server: testing stub value\r\n | ||||
s> Date: $HTTP_DATE$\r\n | ||||
s> Content-Type: application/mercurial-0.1\r\n | ||||
Augie Fackler
|
r37838 | s> Content-Length: *\r\n (glob) | ||
Gregory Szorc
|
r37575 | s> \r\n | ||
Boris Feld
|
r40951 | s> batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset compression=$BUNDLE2_COMPRESSIONS$ getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash | ||
Gregory Szorc
|
r37575 | |||
X-HgUpgrade-<N> without known serialization in X-HgProto-<N> uses legacy response | ||||
$ sendhttpraw << EOF | ||||
> httprequest GET ?cmd=capabilities | ||||
> user-agent: test | ||||
> x-hgupgrade-1: foo bar | ||||
> x-hgproto-1: some value | ||||
> EOF | ||||
using raw connection to peer | ||||
s> GET /?cmd=capabilities HTTP/1.1\r\n | ||||
s> Accept-Encoding: identity\r\n | ||||
s> user-agent: test\r\n | ||||
s> x-hgproto-1: some value\r\n | ||||
s> x-hgupgrade-1: foo bar\r\n | ||||
s> host: $LOCALIP:$HGPORT\r\n (glob) | ||||
s> \r\n | ||||
s> makefile('rb', None) | ||||
s> HTTP/1.1 200 Script output follows\r\n | ||||
s> Server: testing stub value\r\n | ||||
s> Date: $HTTP_DATE$\r\n | ||||
s> Content-Type: application/mercurial-0.1\r\n | ||||
Augie Fackler
|
r37838 | s> Content-Length: *\r\n (glob) | ||
Gregory Szorc
|
r37575 | s> \r\n | ||
Boris Feld
|
r40951 | s> batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset compression=$BUNDLE2_COMPRESSIONS$ getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash | ||
Gregory Szorc
|
r37575 | |||
X-HgUpgrade-<N> + X-HgProto-<N> headers trigger new response format | ||||
$ sendhttpraw << EOF | ||||
> httprequest GET ?cmd=capabilities | ||||
> user-agent: test | ||||
> x-hgupgrade-1: foo bar | ||||
> x-hgproto-1: cbor | ||||
> EOF | ||||
using raw connection to peer | ||||
s> GET /?cmd=capabilities HTTP/1.1\r\n | ||||
s> Accept-Encoding: identity\r\n | ||||
s> user-agent: test\r\n | ||||
s> x-hgproto-1: cbor\r\n | ||||
s> x-hgupgrade-1: foo bar\r\n | ||||
s> host: $LOCALIP:$HGPORT\r\n (glob) | ||||
s> \r\n | ||||
s> makefile('rb', None) | ||||
s> HTTP/1.1 200 OK\r\n | ||||
s> Server: testing stub value\r\n | ||||
s> Date: $HTTP_DATE$\r\n | ||||
s> Content-Type: application/mercurial-cbor\r\n | ||||
Augie Fackler
|
r37838 | s> Content-Length: *\r\n (glob) | ||
Gregory Szorc
|
r37575 | s> \r\n | ||
Boris Feld
|
r40951 | s> \xa3GapibaseDapi/Dapis\xa0Nv1capabilitiesY\x01\xe0batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset compression=$BUNDLE2_COMPRESSIONS$ getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash | ||
Gregory Szorc
|
r40053 | cbor> [ | ||
{ | ||||
b'apibase': b'api/', | ||||
b'apis': {}, | ||||
Boris Feld
|
r40951 | b'v1capabilities': b'batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset compression=$BUNDLE2_COMPRESSIONS$ getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash' | ||
Gregory Szorc
|
r40053 | } | ||
] | ||||
Gregory Szorc
|
r37575 | |||
Restart server to enable HTTPv2 | ||||
$ killdaemons.py | ||||
$ enablehttpv2 server | ||||
$ hg -R server serve -p $HGPORT -d --pid-file hg.pid -E error.log | ||||
Matt Harbison
|
r37779 | $ cat hg.pid > $DAEMON_PIDS | ||
Gregory Szorc
|
r37575 | |||
Only requested API services are returned | ||||
$ sendhttpraw << EOF | ||||
> httprequest GET ?cmd=capabilities | ||||
> user-agent: test | ||||
> x-hgupgrade-1: foo bar | ||||
> x-hgproto-1: cbor | ||||
> EOF | ||||
using raw connection to peer | ||||
s> GET /?cmd=capabilities HTTP/1.1\r\n | ||||
s> Accept-Encoding: identity\r\n | ||||
s> user-agent: test\r\n | ||||
s> x-hgproto-1: cbor\r\n | ||||
s> x-hgupgrade-1: foo bar\r\n | ||||
s> host: $LOCALIP:$HGPORT\r\n (glob) | ||||
s> \r\n | ||||
s> makefile('rb', None) | ||||
s> HTTP/1.1 200 OK\r\n | ||||
s> Server: testing stub value\r\n | ||||
s> Date: $HTTP_DATE$\r\n | ||||
s> Content-Type: application/mercurial-cbor\r\n | ||||
Augie Fackler
|
r37838 | s> Content-Length: *\r\n (glob) | ||
Gregory Szorc
|
r37575 | s> \r\n | ||
Boris Feld
|
r40951 | s> \xa3GapibaseDapi/Dapis\xa0Nv1capabilitiesY\x01\xe0batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset compression=$BUNDLE2_COMPRESSIONS$ getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash | ||
Gregory Szorc
|
r40053 | cbor> [ | ||
{ | ||||
b'apibase': b'api/', | ||||
b'apis': {}, | ||||
Boris Feld
|
r40951 | b'v1capabilities': b'batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset compression=$BUNDLE2_COMPRESSIONS$ getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash' | ||
Gregory Szorc
|
r40053 | } | ||
] | ||||
Gregory Szorc
|
r37575 | |||
Request for HTTPv2 service returns information about it | ||||
$ sendhttpraw << EOF | ||||
> httprequest GET ?cmd=capabilities | ||||
> user-agent: test | ||||
Gregory Szorc
|
r40212 | > x-hgupgrade-1: exp-http-v2-0003 foo bar | ||
Gregory Szorc
|
r37575 | > x-hgproto-1: cbor | ||
> EOF | ||||
using raw connection to peer | ||||
s> GET /?cmd=capabilities HTTP/1.1\r\n | ||||
s> Accept-Encoding: identity\r\n | ||||
s> user-agent: test\r\n | ||||
s> x-hgproto-1: cbor\r\n | ||||
Gregory Szorc
|
r40212 | s> x-hgupgrade-1: exp-http-v2-0003 foo bar\r\n | ||
Gregory Szorc
|
r37575 | s> host: $LOCALIP:$HGPORT\r\n (glob) | ||
s> \r\n | ||||
s> makefile('rb', None) | ||||
s> HTTP/1.1 200 OK\r\n | ||||
s> Server: testing stub value\r\n | ||||
s> Date: $HTTP_DATE$\r\n | ||||
s> Content-Type: application/mercurial-cbor\r\n | ||||
Gregory Szorc
|
r37663 | s> Content-Length: *\r\n (glob) | ||
Gregory Szorc
|
r37575 | s> \r\n | ||
Boris Feld
|
r40951 | s> \xa3GapibaseDapi/Dapis\xa1Pexp-http-v2-0003\xa4Hcommands\xacIbranchmap\xa2Dargs\xa0Kpermissions\x81DpullLcapabilities\xa2Dargs\xa0Kpermissions\x81DpullMchangesetdata\xa2Dargs\xa2Ffields\xa4Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetKvalidvalues\xd9\x01\x02\x84IbookmarksGparentsEphaseHrevisionIrevisions\xa2Hrequired\xf5DtypeDlistKpermissions\x81DpullHfiledata\xa2Dargs\xa4Ffields\xa4Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetKvalidvalues\xd9\x01\x02\x83HlinknodeGparentsHrevisionKhaveparents\xa3Gdefault\xf4Hrequired\xf4DtypeDboolEnodes\xa2Hrequired\xf5DtypeDlistDpath\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullIfilesdata\xa3Dargs\xa4Ffields\xa4Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetKvalidvalues\xd9\x01\x02\x84NfirstchangesetHlinknodeGparentsHrevisionKhaveparents\xa3Gdefault\xf4Hrequired\xf4DtypeDboolJpathfilter\xa3Gdefault\xf6Hrequired\xf4DtypeDdictIrevisions\xa2Hrequired\xf5DtypeDlistKpermissions\x81DpullTrecommendedbatchsize\x19\xc3PEheads\xa2Dargs\xa1Jpubliconly\xa3Gdefault\xf4Hrequired\xf4DtypeDboolKpermissions\x81DpullEknown\xa2Dargs\xa1Enodes\xa3Gdefault\x80Hrequired\xf4DtypeDlistKpermissions\x81DpullHlistkeys\xa2Dargs\xa1Inamespace\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullFlookup\xa2Dargs\xa1Ckey\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullLmanifestdata\xa3Dargs\xa4Ffields\xa4Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetKvalidvalues\xd9\x01\x02\x82GparentsHrevisionKhaveparents\xa3Gdefault\xf4Hrequired\xf4DtypeDboolEnodes\xa2Hrequired\xf5DtypeDlistDtree\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullTrecommendedbatchsize\x1a\x00\x01\x86\xa0Gpushkey\xa2Dargs\xa4Ckey\xa2Hrequired\xf5DtypeEbytesInamespace\xa2Hrequired\xf5DtypeEbytesCnew\xa2Hrequired\xf5DtypeEbytesCold\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpushPrawstorefiledata\xa2Dargs\xa2Efiles\xa2Hrequired\xf5DtypeDlistJpathfilter\xa3Gdefault\xf6Hrequired\xf4DtypeDlistKpermissions\x81DpullQframingmediatypes\x81X&application/mercurial-exp-framing-0006Rpathfilterprefixes\xd9\x01\x02\x82Epath:Lrootfilesin:Nrawrepoformats\x83LgeneraldeltaHrevlogv1LsparserevlogNv1capabilitiesY\x01\xe0batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset compression=$BUNDLE2_COMPRESSIONS$ getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash | ||
Gregory Szorc
|
r40053 | cbor> [ | ||
{ | ||||
b'apibase': b'api/', | ||||
b'apis': { | ||||
Gregory Szorc
|
r40212 | b'exp-http-v2-0003': { | ||
Gregory Szorc
|
r40053 | b'commands': { | ||
b'branchmap': { | ||||
b'args': {}, | ||||
b'permissions': [ | ||||
b'pull' | ||||
] | ||||
}, | ||||
b'capabilities': { | ||||
b'args': {}, | ||||
b'permissions': [ | ||||
b'pull' | ||||
] | ||||
Gregory Szorc
|
r39666 | }, | ||
Gregory Szorc
|
r40053 | b'changesetdata': { | ||
b'args': { | ||||
b'fields': { | ||||
b'default': set([]), | ||||
b'required': False, | ||||
b'type': b'set', | ||||
b'validvalues': set([ | ||||
b'bookmarks', | ||||
b'parents', | ||||
b'phase', | ||||
b'revision' | ||||
]) | ||||
}, | ||||
Gregory Szorc
|
r40212 | b'revisions': { | ||
b'required': True, | ||||
Gregory Szorc
|
r40053 | b'type': b'list' | ||
} | ||||
Gregory Szorc
|
r39837 | }, | ||
Gregory Szorc
|
r40053 | b'permissions': [ | ||
b'pull' | ||||
] | ||||
Gregory Szorc
|
r39675 | }, | ||
Gregory Szorc
|
r40053 | b'filedata': { | ||
b'args': { | ||||
b'fields': { | ||||
b'default': set([]), | ||||
b'required': False, | ||||
b'type': b'set', | ||||
b'validvalues': set([ | ||||
Gregory Szorc
|
r40427 | b'linknode', | ||
Gregory Szorc
|
r40053 | b'parents', | ||
b'revision' | ||||
]) | ||||
}, | ||||
b'haveparents': { | ||||
b'default': False, | ||||
b'required': False, | ||||
b'type': b'bool' | ||||
}, | ||||
b'nodes': { | ||||
b'required': True, | ||||
b'type': b'list' | ||||
}, | ||||
b'path': { | ||||
b'required': True, | ||||
b'type': b'bytes' | ||||
} | ||||
}, | ||||
b'permissions': [ | ||||
b'pull' | ||||
] | ||||
Gregory Szorc
|
r39414 | }, | ||
Gregory Szorc
|
r40214 | b'filesdata': { | ||
b'args': { | ||||
b'fields': { | ||||
b'default': set([]), | ||||
b'required': False, | ||||
b'type': b'set', | ||||
b'validvalues': set([ | ||||
b'firstchangeset', | ||||
Gregory Szorc
|
r40427 | b'linknode', | ||
Gregory Szorc
|
r40214 | b'parents', | ||
b'revision' | ||||
]) | ||||
}, | ||||
b'haveparents': { | ||||
b'default': False, | ||||
b'required': False, | ||||
b'type': b'bool' | ||||
}, | ||||
b'pathfilter': { | ||||
b'default': None, | ||||
b'required': False, | ||||
b'type': b'dict' | ||||
}, | ||||
b'revisions': { | ||||
b'required': True, | ||||
b'type': b'list' | ||||
} | ||||
}, | ||||
b'permissions': [ | ||||
b'pull' | ||||
], | ||||
b'recommendedbatchsize': 50000 | ||||
}, | ||||
Gregory Szorc
|
r40053 | b'heads': { | ||
b'args': { | ||||
b'publiconly': { | ||||
b'default': False, | ||||
b'required': False, | ||||
b'type': b'bool' | ||||
} | ||||
}, | ||||
b'permissions': [ | ||||
b'pull' | ||||
] | ||||
Gregory Szorc
|
r39414 | }, | ||
Gregory Szorc
|
r40053 | b'known': { | ||
b'args': { | ||||
b'nodes': { | ||||
b'default': [], | ||||
b'required': False, | ||||
b'type': b'list' | ||||
} | ||||
}, | ||||
b'permissions': [ | ||||
b'pull' | ||||
] | ||||
Gregory Szorc
|
r39414 | }, | ||
Gregory Szorc
|
r40053 | b'listkeys': { | ||
b'args': { | ||||
b'namespace': { | ||||
b'required': True, | ||||
b'type': b'bytes' | ||||
} | ||||
Gregory Szorc
|
r39837 | }, | ||
Gregory Szorc
|
r40053 | b'permissions': [ | ||
b'pull' | ||||
] | ||||
}, | ||||
b'lookup': { | ||||
b'args': { | ||||
b'key': { | ||||
b'required': True, | ||||
b'type': b'bytes' | ||||
} | ||||
Gregory Szorc
|
r39837 | }, | ||
Gregory Szorc
|
r40053 | b'permissions': [ | ||
b'pull' | ||||
] | ||||
Gregory Szorc
|
r39673 | }, | ||
Gregory Szorc
|
r40053 | b'manifestdata': { | ||
b'args': { | ||||
b'fields': { | ||||
b'default': set([]), | ||||
b'required': False, | ||||
b'type': b'set', | ||||
b'validvalues': set([ | ||||
b'parents', | ||||
b'revision' | ||||
]) | ||||
}, | ||||
b'haveparents': { | ||||
b'default': False, | ||||
b'required': False, | ||||
b'type': b'bool' | ||||
}, | ||||
b'nodes': { | ||||
b'required': True, | ||||
b'type': b'list' | ||||
}, | ||||
b'tree': { | ||||
b'required': True, | ||||
b'type': b'bytes' | ||||
} | ||||
Gregory Szorc
|
r39837 | }, | ||
Gregory Szorc
|
r40053 | b'permissions': [ | ||
b'pull' | ||||
Gregory Szorc
|
r40208 | ], | ||
b'recommendedbatchsize': 100000 | ||||
Gregory Szorc
|
r39414 | }, | ||
Gregory Szorc
|
r40053 | b'pushkey': { | ||
b'args': { | ||||
b'key': { | ||||
b'required': True, | ||||
b'type': b'bytes' | ||||
}, | ||||
b'namespace': { | ||||
b'required': True, | ||||
b'type': b'bytes' | ||||
}, | ||||
b'new': { | ||||
b'required': True, | ||||
b'type': b'bytes' | ||||
}, | ||||
b'old': { | ||||
b'required': True, | ||||
b'type': b'bytes' | ||||
} | ||||
}, | ||||
b'permissions': [ | ||||
b'push' | ||||
] | ||||
Gregory Szorc
|
r40365 | }, | ||
b'rawstorefiledata': { | ||||
b'args': { | ||||
b'files': { | ||||
b'required': True, | ||||
b'type': b'list' | ||||
}, | ||||
b'pathfilter': { | ||||
b'default': None, | ||||
b'required': False, | ||||
b'type': b'list' | ||||
} | ||||
}, | ||||
b'permissions': [ | ||||
b'pull' | ||||
] | ||||
Gregory Szorc
|
r40053 | } | ||
}, | ||||
b'framingmediatypes': [ | ||||
Gregory Szorc
|
r40168 | b'application/mercurial-exp-framing-0006' | ||
Gregory Szorc
|
r40053 | ], | ||
b'pathfilterprefixes': set([ | ||||
b'path:', | ||||
b'rootfilesin:' | ||||
]), | ||||
b'rawrepoformats': [ | ||||
b'generaldelta', | ||||
Boris Feld
|
r40951 | b'revlogv1', | ||
b'sparserevlog' | ||||
Gregory Szorc
|
r40053 | ] | ||
} | ||||
}, | ||||
Boris Feld
|
r40951 | b'v1capabilities': b'batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset compression=$BUNDLE2_COMPRESSIONS$ getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash' | ||
Gregory Szorc
|
r40053 | } | ||
] | ||||
Gregory Szorc
|
r37575 | |||
capabilities command returns expected info | ||||
Gregory Szorc
|
r37551 | |||
Gregory Szorc
|
r37736 | $ sendhttpv2peerhandshake << EOF | ||
Gregory Szorc
|
r37551 | > command capabilities | ||
> EOF | ||||
creating http peer for wire protocol version 2 | ||||
Gregory Szorc
|
r37736 | s> GET /?cmd=capabilities HTTP/1.1\r\n | ||
Gregory Szorc
|
r37663 | s> Accept-Encoding: identity\r\n | ||
s> vary: X-HgProto-1,X-HgUpgrade-1\r\n | ||||
s> x-hgproto-1: cbor\r\n | ||||
Gregory Szorc
|
r40212 | s> x-hgupgrade-1: exp-http-v2-0003\r\n | ||
Gregory Szorc
|
r37663 | s> accept: application/mercurial-0.1\r\n | ||
s> host: $LOCALIP:$HGPORT\r\n (glob) | ||||
s> user-agent: Mercurial debugwireproto\r\n | ||||
s> \r\n | ||||
s> makefile('rb', None) | ||||
s> HTTP/1.1 200 OK\r\n | ||||
s> Server: testing stub value\r\n | ||||
s> Date: $HTTP_DATE$\r\n | ||||
s> Content-Type: application/mercurial-cbor\r\n | ||||
s> Content-Length: *\r\n (glob) | ||||
s> \r\n | ||||
Boris Feld
|
r40951 | s> \xa3GapibaseDapi/Dapis\xa1Pexp-http-v2-0003\xa4Hcommands\xacIbranchmap\xa2Dargs\xa0Kpermissions\x81DpullLcapabilities\xa2Dargs\xa0Kpermissions\x81DpullMchangesetdata\xa2Dargs\xa2Ffields\xa4Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetKvalidvalues\xd9\x01\x02\x84IbookmarksGparentsEphaseHrevisionIrevisions\xa2Hrequired\xf5DtypeDlistKpermissions\x81DpullHfiledata\xa2Dargs\xa4Ffields\xa4Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetKvalidvalues\xd9\x01\x02\x83HlinknodeGparentsHrevisionKhaveparents\xa3Gdefault\xf4Hrequired\xf4DtypeDboolEnodes\xa2Hrequired\xf5DtypeDlistDpath\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullIfilesdata\xa3Dargs\xa4Ffields\xa4Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetKvalidvalues\xd9\x01\x02\x84NfirstchangesetHlinknodeGparentsHrevisionKhaveparents\xa3Gdefault\xf4Hrequired\xf4DtypeDboolJpathfilter\xa3Gdefault\xf6Hrequired\xf4DtypeDdictIrevisions\xa2Hrequired\xf5DtypeDlistKpermissions\x81DpullTrecommendedbatchsize\x19\xc3PEheads\xa2Dargs\xa1Jpubliconly\xa3Gdefault\xf4Hrequired\xf4DtypeDboolKpermissions\x81DpullEknown\xa2Dargs\xa1Enodes\xa3Gdefault\x80Hrequired\xf4DtypeDlistKpermissions\x81DpullHlistkeys\xa2Dargs\xa1Inamespace\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullFlookup\xa2Dargs\xa1Ckey\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullLmanifestdata\xa3Dargs\xa4Ffields\xa4Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetKvalidvalues\xd9\x01\x02\x82GparentsHrevisionKhaveparents\xa3Gdefault\xf4Hrequired\xf4DtypeDboolEnodes\xa2Hrequired\xf5DtypeDlistDtree\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullTrecommendedbatchsize\x1a\x00\x01\x86\xa0Gpushkey\xa2Dargs\xa4Ckey\xa2Hrequired\xf5DtypeEbytesInamespace\xa2Hrequired\xf5DtypeEbytesCnew\xa2Hrequired\xf5DtypeEbytesCold\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpushPrawstorefiledata\xa2Dargs\xa2Efiles\xa2Hrequired\xf5DtypeDlistJpathfilter\xa3Gdefault\xf6Hrequired\xf4DtypeDlistKpermissions\x81DpullQframingmediatypes\x81X&application/mercurial-exp-framing-0006Rpathfilterprefixes\xd9\x01\x02\x82Epath:Lrootfilesin:Nrawrepoformats\x83LgeneraldeltaHrevlogv1LsparserevlogNv1capabilitiesY\x01\xe0batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset compression=$BUNDLE2_COMPRESSIONS$ getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash | ||
Gregory Szorc
|
r37551 | sending capabilities command | ||
Gregory Szorc
|
r40212 | s> POST /api/exp-http-v2-0003/ro/capabilities HTTP/1.1\r\n | ||
Gregory Szorc
|
r37551 | s> Accept-Encoding: identity\r\n | ||
Gregory Szorc
|
r40168 | s> accept: application/mercurial-exp-framing-0006\r\n | ||
s> content-type: application/mercurial-exp-framing-0006\r\n | ||||
s> content-length: 63\r\n | ||||
Gregory Szorc
|
r37551 | s> host: $LOCALIP:$HGPORT\r\n (glob) | ||
s> user-agent: Mercurial debugwireproto\r\n | ||||
s> \r\n | ||||
Gregory Szorc
|
r40168 | s> \x1c\x00\x00\x01\x00\x01\x01\x82\xa1Pcontentencodings\x81Hidentity\x13\x00\x00\x01\x00\x01\x00\x11\xa1DnameLcapabilities | ||
Gregory Szorc
|
r37551 | s> makefile('rb', None) | ||
s> HTTP/1.1 200 OK\r\n | ||||
s> Server: testing stub value\r\n | ||||
s> Date: $HTTP_DATE$\r\n | ||||
Gregory Szorc
|
r40168 | s> Content-Type: application/mercurial-exp-framing-0006\r\n | ||
Gregory Szorc
|
r37551 | s> Transfer-Encoding: chunked\r\n | ||
s> \r\n | ||||
Gregory Szorc
|
r40173 | s> 11\r\n | ||
s> \t\x00\x00\x01\x00\x02\x01\x92 | ||||
s> Hidentity | ||||
s> \r\n | ||||
received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos) | ||||
Gregory Szorc
|
r39595 | s> 13\r\n | ||
Gregory Szorc
|
r40173 | s> \x0b\x00\x00\x01\x00\x02\x041 | ||
Gregory Szorc
|
r39595 | s> \xa1FstatusBok | ||
Gregory Szorc
|
r37551 | s> \r\n | ||
Gregory Szorc
|
r40173 | received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation) | ||
Boris Feld
|
r40951 | s> 65e\r\n | ||
s> V\x06\x00\x01\x00\x02\x041 | ||||
s> \xa4Hcommands\xacIbranchmap\xa2Dargs\xa0Kpermissions\x81DpullLcapabilities\xa2Dargs\xa0Kpermissions\x81DpullMchangesetdata\xa2Dargs\xa2Ffields\xa4Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetKvalidvalues\xd9\x01\x02\x84IbookmarksGparentsEphaseHrevisionIrevisions\xa2Hrequired\xf5DtypeDlistKpermissions\x81DpullHfiledata\xa2Dargs\xa4Ffields\xa4Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetKvalidvalues\xd9\x01\x02\x83HlinknodeGparentsHrevisionKhaveparents\xa3Gdefault\xf4Hrequired\xf4DtypeDboolEnodes\xa2Hrequired\xf5DtypeDlistDpath\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullIfilesdata\xa3Dargs\xa4Ffields\xa4Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetKvalidvalues\xd9\x01\x02\x84NfirstchangesetHlinknodeGparentsHrevisionKhaveparents\xa3Gdefault\xf4Hrequired\xf4DtypeDboolJpathfilter\xa3Gdefault\xf6Hrequired\xf4DtypeDdictIrevisions\xa2Hrequired\xf5DtypeDlistKpermissions\x81DpullTrecommendedbatchsize\x19\xc3PEheads\xa2Dargs\xa1Jpubliconly\xa3Gdefault\xf4Hrequired\xf4DtypeDboolKpermissions\x81DpullEknown\xa2Dargs\xa1Enodes\xa3Gdefault\x80Hrequired\xf4DtypeDlistKpermissions\x81DpullHlistkeys\xa2Dargs\xa1Inamespace\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullFlookup\xa2Dargs\xa1Ckey\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullLmanifestdata\xa3Dargs\xa4Ffields\xa4Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetKvalidvalues\xd9\x01\x02\x82GparentsHrevisionKhaveparents\xa3Gdefault\xf4Hrequired\xf4DtypeDboolEnodes\xa2Hrequired\xf5DtypeDlistDtree\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullTrecommendedbatchsize\x1a\x00\x01\x86\xa0Gpushkey\xa2Dargs\xa4Ckey\xa2Hrequired\xf5DtypeEbytesInamespace\xa2Hrequired\xf5DtypeEbytesCnew\xa2Hrequired\xf5DtypeEbytesCold\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpushPrawstorefiledata\xa2Dargs\xa2Efiles\xa2Hrequired\xf5DtypeDlistJpathfilter\xa3Gdefault\xf6Hrequired\xf4DtypeDlistKpermissions\x81DpullQframingmediatypes\x81X&application/mercurial-exp-framing-0006Rpathfilterprefixes\xd9\x01\x02\x82Epath:Lrootfilesin:Nrawrepoformats\x83LgeneraldeltaHrevlogv1Lsparserevlog | ||||
Gregory Szorc
|
r39595 | s> \r\n | ||
Boris Feld
|
r40951 | received frame(size=1622; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation) | ||
Gregory Szorc
|
r39595 | s> 8\r\n | ||
s> \x00\x00\x00\x01\x00\x02\x002 | ||||
s> \r\n | ||||
Gregory Szorc
|
r37551 | s> 0\r\n | ||
s> \r\n | ||||
Gregory Szorc
|
r39595 | received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos) | ||
Gregory Szorc
|
r39597 | response: gen[ | ||
Gregory Szorc
|
r39414 | { | ||
b'commands': { | ||||
b'branchmap': { | ||||
b'args': {}, | ||||
b'permissions': [ | ||||
b'pull' | ||||
] | ||||
}, | ||||
b'capabilities': { | ||||
b'args': {}, | ||||
b'permissions': [ | ||||
b'pull' | ||||
] | ||||
}, | ||||
Gregory Szorc
|
r39666 | b'changesetdata': { | ||
b'args': { | ||||
Gregory Szorc
|
r39837 | b'fields': { | ||
b'default': set([]), | ||||
b'required': False, | ||||
Gregory Szorc
|
r39838 | b'type': b'set', | ||
b'validvalues': set([ | ||||
b'bookmarks', | ||||
b'parents', | ||||
b'phase', | ||||
b'revision' | ||||
]) | ||||
Gregory Szorc
|
r39837 | }, | ||
Gregory Szorc
|
r40212 | b'revisions': { | ||
b'required': True, | ||||
Gregory Szorc
|
r39837 | b'type': b'list' | ||
} | ||||
Gregory Szorc
|
r39666 | }, | ||
b'permissions': [ | ||||
b'pull' | ||||
] | ||||
}, | ||||
Gregory Szorc
|
r39675 | b'filedata': { | ||
b'args': { | ||||
Gregory Szorc
|
r39837 | b'fields': { | ||
b'default': set([]), | ||||
b'required': False, | ||||
Gregory Szorc
|
r39838 | b'type': b'set', | ||
b'validvalues': set([ | ||||
Gregory Szorc
|
r40427 | b'linknode', | ||
Gregory Szorc
|
r39838 | b'parents', | ||
b'revision' | ||||
]) | ||||
Gregory Szorc
|
r39837 | }, | ||
b'haveparents': { | ||||
b'default': False, | ||||
b'required': False, | ||||
b'type': b'bool' | ||||
}, | ||||
b'nodes': { | ||||
b'required': True, | ||||
b'type': b'list' | ||||
}, | ||||
b'path': { | ||||
b'required': True, | ||||
b'type': b'bytes' | ||||
} | ||||
Gregory Szorc
|
r39675 | }, | ||
b'permissions': [ | ||||
b'pull' | ||||
] | ||||
}, | ||||
Gregory Szorc
|
r40214 | b'filesdata': { | ||
b'args': { | ||||
b'fields': { | ||||
b'default': set([]), | ||||
b'required': False, | ||||
b'type': b'set', | ||||
b'validvalues': set([ | ||||
b'firstchangeset', | ||||
Gregory Szorc
|
r40427 | b'linknode', | ||
Gregory Szorc
|
r40214 | b'parents', | ||
b'revision' | ||||
]) | ||||
}, | ||||
b'haveparents': { | ||||
b'default': False, | ||||
b'required': False, | ||||
b'type': b'bool' | ||||
}, | ||||
b'pathfilter': { | ||||
b'default': None, | ||||
b'required': False, | ||||
b'type': b'dict' | ||||
}, | ||||
b'revisions': { | ||||
b'required': True, | ||||
b'type': b'list' | ||||
} | ||||
}, | ||||
b'permissions': [ | ||||
b'pull' | ||||
], | ||||
b'recommendedbatchsize': 50000 | ||||
}, | ||||
Gregory Szorc
|
r39414 | b'heads': { | ||
b'args': { | ||||
Gregory Szorc
|
r39837 | b'publiconly': { | ||
b'default': False, | ||||
b'required': False, | ||||
b'type': b'bool' | ||||
} | ||||
Gregory Szorc
|
r39414 | }, | ||
b'permissions': [ | ||||
b'pull' | ||||
] | ||||
}, | ||||
b'known': { | ||||
b'args': { | ||||
Gregory Szorc
|
r39837 | b'nodes': { | ||
b'default': [], | ||||
b'required': False, | ||||
b'type': b'list' | ||||
} | ||||
Gregory Szorc
|
r39414 | }, | ||
b'permissions': [ | ||||
b'pull' | ||||
] | ||||
}, | ||||
b'listkeys': { | ||||
b'args': { | ||||
Gregory Szorc
|
r39837 | b'namespace': { | ||
b'required': True, | ||||
b'type': b'bytes' | ||||
} | ||||
Gregory Szorc
|
r39414 | }, | ||
b'permissions': [ | ||||
b'pull' | ||||
] | ||||
}, | ||||
b'lookup': { | ||||
b'args': { | ||||
Gregory Szorc
|
r39837 | b'key': { | ||
b'required': True, | ||||
b'type': b'bytes' | ||||
} | ||||
Gregory Szorc
|
r39414 | }, | ||
b'permissions': [ | ||||
b'pull' | ||||
] | ||||
}, | ||||
Gregory Szorc
|
r39673 | b'manifestdata': { | ||
b'args': { | ||||
Gregory Szorc
|
r39837 | b'fields': { | ||
b'default': set([]), | ||||
b'required': False, | ||||
Gregory Szorc
|
r39838 | b'type': b'set', | ||
b'validvalues': set([ | ||||
b'parents', | ||||
b'revision' | ||||
]) | ||||
Gregory Szorc
|
r39837 | }, | ||
b'haveparents': { | ||||
b'default': False, | ||||
b'required': False, | ||||
b'type': b'bool' | ||||
}, | ||||
b'nodes': { | ||||
b'required': True, | ||||
b'type': b'list' | ||||
}, | ||||
b'tree': { | ||||
b'required': True, | ||||
b'type': b'bytes' | ||||
} | ||||
Gregory Szorc
|
r39673 | }, | ||
b'permissions': [ | ||||
b'pull' | ||||
Gregory Szorc
|
r40208 | ], | ||
b'recommendedbatchsize': 100000 | ||||
Gregory Szorc
|
r39673 | }, | ||
Gregory Szorc
|
r39414 | b'pushkey': { | ||
b'args': { | ||||
Gregory Szorc
|
r39837 | b'key': { | ||
b'required': True, | ||||
b'type': b'bytes' | ||||
}, | ||||
b'namespace': { | ||||
b'required': True, | ||||
b'type': b'bytes' | ||||
}, | ||||
b'new': { | ||||
b'required': True, | ||||
b'type': b'bytes' | ||||
}, | ||||
b'old': { | ||||
b'required': True, | ||||
b'type': b'bytes' | ||||
} | ||||
Gregory Szorc
|
r39414 | }, | ||
b'permissions': [ | ||||
b'push' | ||||
] | ||||
Gregory Szorc
|
r40365 | }, | ||
b'rawstorefiledata': { | ||||
b'args': { | ||||
b'files': { | ||||
b'required': True, | ||||
b'type': b'list' | ||||
}, | ||||
b'pathfilter': { | ||||
b'default': None, | ||||
b'required': False, | ||||
b'type': b'list' | ||||
} | ||||
}, | ||||
b'permissions': [ | ||||
b'pull' | ||||
] | ||||
Gregory Szorc
|
r39414 | } | ||
}, | ||||
b'framingmediatypes': [ | ||||
Gregory Szorc
|
r40168 | b'application/mercurial-exp-framing-0006' | ||
Gregory Szorc
|
r39414 | ], | ||
Gregory Szorc
|
r39836 | b'pathfilterprefixes': set([ | ||
b'path:', | ||||
b'rootfilesin:' | ||||
]), | ||||
Gregory Szorc
|
r39414 | b'rawrepoformats': [ | ||
b'generaldelta', | ||||
Boris Feld
|
r40951 | b'revlogv1', | ||
b'sparserevlog' | ||||
Gregory Szorc
|
r39414 | ] | ||
} | ||||
] | ||||
Gregory Szorc
|
r40070 | (sent 2 HTTP requests and * bytes; received * bytes in responses) (glob) | ||
Gregory Szorc
|
r37551 | |||
$ cat error.log | ||||