tests/test-wireproto-content-redirects.t
author Augie Fackler <augie@google.com>
Tue, 17 Mar 2020 17:21:34 -0400
changeset 44569 5483e9c759e4
parent 44412 edc8504bc26b
child 46633 7015b0232c5e
permissions -rw-r--r--
tests: add test for remotefilelog interactions with hgweb It's not uncommon for hg users to rely on hgweb as a simple GUI and history browser (I do this all the time on Mercurial), but we lack any tests to ensure things keep working. At present, this merely demonstrates the "view contents of a single file" endpoint is broken. I'll fix that in a subsequent change. Differential Revision: https://phab.mercurial-scm.org/D8298
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     1
  $ . $TESTDIR/wireprotohelpers.sh
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     2
40025
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
     3
  $ cat >> $HGRCPATH << EOF
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
     4
  > [extensions]
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
     5
  > blackbox =
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
     6
  > [blackbox]
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
     7
  > track = simplecache
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
     8
  > EOF
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
     9
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    10
  $ hg init server
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    11
  $ enablehttpv2 server
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    12
  $ cd server
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    13
  $ cat >> .hg/hgrc << EOF
40123
627b0f9baeaf tests: disable zstd in test
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40122
diff changeset
    14
  > [server]
627b0f9baeaf tests: disable zstd in test
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40122
diff changeset
    15
  > compressionengines = zlib
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    16
  > [extensions]
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    17
  > simplecache = $TESTDIR/wireprotosimplecache.py
40025
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
    18
  > [simplecache]
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
    19
  > cacheapi = true
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    20
  > EOF
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    21
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    22
  $ echo a0 > a
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    23
  $ echo b0 > b
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    24
  $ hg -q commit -A -m 'commit 0'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    25
  $ echo a1 > a
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    26
  $ hg commit -m 'commit 1'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    27
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    28
  $ hg --debug debugindex -m
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    29
     rev linkrev nodeid                                   p1                                       p2
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    30
       0       0 992f4779029a3df8d0666d00bb924f69634e2641 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    31
       1       1 a988fb43583e871d1ed5750ee074c6d840bbbfc8 992f4779029a3df8d0666d00bb924f69634e2641 0000000000000000000000000000000000000000
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    32
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    33
  $ hg --config simplecache.redirectsfile=redirects.py serve -p $HGPORT -d --pid-file hg.pid -E error.log
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    34
  $ cat hg.pid > $DAEMON_PIDS
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    35
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    36
  $ cat > redirects.py << EOF
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    37
  > [
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    38
  >   {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    39
  >     b'name': b'target-a',
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    40
  >     b'protocol': b'http',
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    41
  >     b'snirequired': False,
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    42
  >     b'tlsversions': [b'1.2', b'1.3'],
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    43
  >     b'uris': [b'http://example.com/'],
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    44
  >   },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    45
  > ]
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    46
  > EOF
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    47
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    48
Redirect targets advertised when configured
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    49
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    50
  $ sendhttpv2peerhandshake << EOF
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    51
  > command capabilities
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    52
  > EOF
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    53
  creating http peer for wire protocol version 2
41502
2f7408b7d247 tests: give up and make setsockopt() calls optional in the output
Augie Fackler <augie@google.com>
parents: 41380
diff changeset
    54
  s> setsockopt(6, 1, 1) -> None (?)
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    55
  s>     GET /?cmd=capabilities HTTP/1.1\r\n
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    56
  s>     Accept-Encoding: identity\r\n
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    57
  s>     vary: X-HgProto-1,X-HgUpgrade-1\r\n
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    58
  s>     x-hgproto-1: cbor\r\n
40176
41263df08109 wireprotov2: change how revisions are specified to changesetdata
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40172
diff changeset
    59
  s>     x-hgupgrade-1: exp-http-v2-0003\r\n
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    60
  s>     accept: application/mercurial-0.1\r\n
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    61
  s>     host: $LOCALIP:$HGPORT\r\n (glob)
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    62
  s>     user-agent: Mercurial debugwireproto\r\n
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    63
  s>     \r\n
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    64
  s> makefile('rb', None)
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    65
  s>     HTTP/1.1 200 OK\r\n
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    66
  s>     Server: testing stub value\r\n
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    67
  s>     Date: $HTTP_DATE$\r\n
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    68
  s>     Content-Type: application/mercurial-cbor\r\n
44412
edc8504bc26b exchange: turn on option that makes concurrent pushes work better
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 41502
diff changeset
    69
  s>     Content-Length: 2308\r\n
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    70
  s>     \r\n
44412
edc8504bc26b exchange: turn on option that makes concurrent pushes work better
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 41502
diff changeset
    71
  s>     \xa3GapibaseDapi/Dapis\xa1Pexp-http-v2-0003\xa5Hcommands\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\x83LgeneraldeltaHrevlogv1LsparserevlogHredirect\xa2Fhashes\x82Fsha256Dsha1Gtargets\x81\xa5DnameHtarget-aHprotocolDhttpKsnirequired\xf4Ktlsversions\x82C1.2C1.3Duris\x81Shttp://example.com/Nv1capabilitiesY\x01\xf7batch 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
40615
7589f2c9c3c7 tests: fix wireproto redirection test on systems without tls1.2
Augie Fackler <augie@google.com>
parents: 40391
diff changeset
    72
  (remote redirect target target-a is compatible) (tls1.2 !)
7589f2c9c3c7 tests: fix wireproto redirection test on systems without tls1.2
Augie Fackler <augie@google.com>
parents: 40391
diff changeset
    73
  (remote redirect target target-a requires unsupported TLS versions: 1.2, 1.3) (no-tls1.2 !)
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    74
  sending capabilities command
41502
2f7408b7d247 tests: give up and make setsockopt() calls optional in the output
Augie Fackler <augie@google.com>
parents: 41380
diff changeset
    75
  s> setsockopt(6, 1, 1) -> None (?)
40176
41263df08109 wireprotov2: change how revisions are specified to changesetdata
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40172
diff changeset
    76
  s>     POST /api/exp-http-v2-0003/ro/capabilities HTTP/1.1\r\n
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    77
  s>     Accept-Encoding: identity\r\n
40133
762ef19a07e3 wireprotov2: send protocol settings frame from client
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40123
diff changeset
    78
  s>     accept: application/mercurial-exp-framing-0006\r\n
762ef19a07e3 wireprotov2: send protocol settings frame from client
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40123
diff changeset
    79
  s>     content-type: application/mercurial-exp-framing-0006\r\n
40615
7589f2c9c3c7 tests: fix wireproto redirection test on systems without tls1.2
Augie Fackler <augie@google.com>
parents: 40391
diff changeset
    80
  s>     content-length: 111\r\n (tls1.2 !)
7589f2c9c3c7 tests: fix wireproto redirection test on systems without tls1.2
Augie Fackler <augie@google.com>
parents: 40391
diff changeset
    81
  s>     content-length: 102\r\n (no-tls1.2 !)
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    82
  s>     host: $LOCALIP:$HGPORT\r\n (glob)
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    83
  s>     user-agent: Mercurial debugwireproto\r\n
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    84
  s>     \r\n
40615
7589f2c9c3c7 tests: fix wireproto redirection test on systems without tls1.2
Augie Fackler <augie@google.com>
parents: 40391
diff changeset
    85
  s>     \x1c\x00\x00\x01\x00\x01\x01\x82\xa1Pcontentencodings\x81HidentityC\x00\x00\x01\x00\x01\x00\x11\xa2DnameLcapabilitiesHredirect\xa2Fhashes\x82Fsha256Dsha1Gtargets\x81Htarget-a (tls1.2 !)
7589f2c9c3c7 tests: fix wireproto redirection test on systems without tls1.2
Augie Fackler <augie@google.com>
parents: 40391
diff changeset
    86
  s>     \x1c\x00\x00\x01\x00\x01\x01\x82\xa1Pcontentencodings\x81Hidentity:\x00\x00\x01\x00\x01\x00\x11\xa2DnameLcapabilitiesHredirect\xa2Fhashes\x82Fsha256Dsha1Gtargets\x80 (no-tls1.2 !)
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    87
  s> makefile('rb', None)
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    88
  s>     HTTP/1.1 200 OK\r\n
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    89
  s>     Server: testing stub value\r\n
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    90
  s>     Date: $HTTP_DATE$\r\n
40133
762ef19a07e3 wireprotov2: send protocol settings frame from client
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40123
diff changeset
    91
  s>     Content-Type: application/mercurial-exp-framing-0006\r\n
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    92
  s>     Transfer-Encoding: chunked\r\n
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    93
  s>     \r\n
40138
b5bf3dd6ec5b wireprotov2: send content encoded frames from server
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40133
diff changeset
    94
  s>     11\r\n
b5bf3dd6ec5b wireprotov2: send content encoded frames from server
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40133
diff changeset
    95
  s>     \t\x00\x00\x01\x00\x02\x01\x92
b5bf3dd6ec5b wireprotov2: send content encoded frames from server
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40133
diff changeset
    96
  s>     Hidentity
b5bf3dd6ec5b wireprotov2: send content encoded frames from server
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40133
diff changeset
    97
  s>     \r\n
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    98
  s>     13\r\n
40138
b5bf3dd6ec5b wireprotov2: send content encoded frames from server
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40133
diff changeset
    99
  s>     \x0b\x00\x00\x01\x00\x02\x041
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   100
  s>     \xa1FstatusBok
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   101
  s>     \r\n
40916
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   102
  s>     6de\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   103
  s>     \xd6\x06\x00\x01\x00\x02\x041
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   104
  s>     \xa5Hcommands\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\x83LgeneraldeltaHrevlogv1LsparserevlogHredirect\xa2Fhashes\x82Fsha256Dsha1Gtargets\x81\xa5DnameHtarget-aHprotocolDhttpKsnirequired\xf4Ktlsversions\x82C1.2C1.3Duris\x81Shttp://example.com/
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   105
  s>     \r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   106
  s>     8\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   107
  s>     \x00\x00\x00\x01\x00\x02\x002
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   108
  s>     \r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   109
  s>     0\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   110
  s>     \r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   111
  response: gen[
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   112
    {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   113
      b'commands': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   114
        b'branchmap': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   115
          b'args': {},
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   116
          b'permissions': [
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   117
            b'pull'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   118
          ]
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   119
        },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   120
        b'capabilities': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   121
          b'args': {},
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   122
          b'permissions': [
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   123
            b'pull'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   124
          ]
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   125
        },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   126
        b'changesetdata': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   127
          b'args': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   128
            b'fields': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   129
              b'default': set([]),
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   130
              b'required': False,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   131
              b'type': b'set',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   132
              b'validvalues': set([
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   133
                b'bookmarks',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   134
                b'parents',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   135
                b'phase',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   136
                b'revision'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   137
              ])
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   138
            },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   139
            b'revisions': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   140
              b'required': True,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   141
              b'type': b'list'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   142
            }
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   143
          },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   144
          b'permissions': [
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   145
            b'pull'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   146
          ]
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   147
        },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   148
        b'filedata': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   149
          b'args': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   150
            b'fields': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   151
              b'default': set([]),
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   152
              b'required': False,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   153
              b'type': b'set',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   154
              b'validvalues': set([
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   155
                b'linknode',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   156
                b'parents',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   157
                b'revision'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   158
              ])
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   159
            },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   160
            b'haveparents': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   161
              b'default': False,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   162
              b'required': False,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   163
              b'type': b'bool'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   164
            },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   165
            b'nodes': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   166
              b'required': True,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   167
              b'type': b'list'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   168
            },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   169
            b'path': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   170
              b'required': True,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   171
              b'type': b'bytes'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   172
            }
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   173
          },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   174
          b'permissions': [
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   175
            b'pull'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   176
          ]
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   177
        },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   178
        b'filesdata': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   179
          b'args': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   180
            b'fields': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   181
              b'default': set([]),
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   182
              b'required': False,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   183
              b'type': b'set',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   184
              b'validvalues': set([
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   185
                b'firstchangeset',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   186
                b'linknode',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   187
                b'parents',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   188
                b'revision'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   189
              ])
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   190
            },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   191
            b'haveparents': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   192
              b'default': False,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   193
              b'required': False,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   194
              b'type': b'bool'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   195
            },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   196
            b'pathfilter': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   197
              b'default': None,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   198
              b'required': False,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   199
              b'type': b'dict'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   200
            },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   201
            b'revisions': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   202
              b'required': True,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   203
              b'type': b'list'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   204
            }
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   205
          },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   206
          b'permissions': [
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   207
            b'pull'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   208
          ],
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   209
          b'recommendedbatchsize': 50000
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   210
        },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   211
        b'heads': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   212
          b'args': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   213
            b'publiconly': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   214
              b'default': False,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   215
              b'required': False,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   216
              b'type': b'bool'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   217
            }
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   218
          },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   219
          b'permissions': [
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   220
            b'pull'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   221
          ]
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   222
        },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   223
        b'known': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   224
          b'args': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   225
            b'nodes': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   226
              b'default': [],
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   227
              b'required': False,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   228
              b'type': b'list'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   229
            }
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   230
          },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   231
          b'permissions': [
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   232
            b'pull'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   233
          ]
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   234
        },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   235
        b'listkeys': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   236
          b'args': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   237
            b'namespace': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   238
              b'required': True,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   239
              b'type': b'bytes'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   240
            }
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   241
          },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   242
          b'permissions': [
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   243
            b'pull'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   244
          ]
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   245
        },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   246
        b'lookup': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   247
          b'args': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   248
            b'key': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   249
              b'required': True,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   250
              b'type': b'bytes'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   251
            }
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   252
          },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   253
          b'permissions': [
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   254
            b'pull'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   255
          ]
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   256
        },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   257
        b'manifestdata': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   258
          b'args': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   259
            b'fields': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   260
              b'default': set([]),
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   261
              b'required': False,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   262
              b'type': b'set',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   263
              b'validvalues': set([
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   264
                b'parents',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   265
                b'revision'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   266
              ])
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   267
            },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   268
            b'haveparents': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   269
              b'default': False,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   270
              b'required': False,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   271
              b'type': b'bool'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   272
            },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   273
            b'nodes': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   274
              b'required': True,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   275
              b'type': b'list'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   276
            },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   277
            b'tree': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   278
              b'required': True,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   279
              b'type': b'bytes'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   280
            }
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   281
          },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   282
          b'permissions': [
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   283
            b'pull'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   284
          ],
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   285
          b'recommendedbatchsize': 100000
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   286
        },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   287
        b'pushkey': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   288
          b'args': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   289
            b'key': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   290
              b'required': True,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   291
              b'type': b'bytes'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   292
            },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   293
            b'namespace': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   294
              b'required': True,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   295
              b'type': b'bytes'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   296
            },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   297
            b'new': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   298
              b'required': True,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   299
              b'type': b'bytes'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   300
            },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   301
            b'old': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   302
              b'required': True,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   303
              b'type': b'bytes'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   304
            }
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   305
          },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   306
          b'permissions': [
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   307
            b'push'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   308
          ]
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   309
        },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   310
        b'rawstorefiledata': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   311
          b'args': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   312
            b'files': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   313
              b'required': True,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   314
              b'type': b'list'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   315
            },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   316
            b'pathfilter': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   317
              b'default': None,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   318
              b'required': False,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   319
              b'type': b'list'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   320
            }
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   321
          },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   322
          b'permissions': [
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   323
            b'pull'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   324
          ]
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   325
        }
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   326
      },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   327
      b'framingmediatypes': [
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   328
        b'application/mercurial-exp-framing-0006'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   329
      ],
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   330
      b'pathfilterprefixes': set([
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   331
        b'path:',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   332
        b'rootfilesin:'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   333
      ]),
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   334
      b'rawrepoformats': [
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   335
        b'generaldelta',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   336
        b'revlogv1',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   337
        b'sparserevlog'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   338
      ],
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   339
      b'redirect': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   340
        b'hashes': [
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   341
          b'sha256',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   342
          b'sha1'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   343
        ],
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   344
        b'targets': [
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   345
          {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   346
            b'name': b'target-a',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   347
            b'protocol': b'http',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   348
            b'snirequired': False,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   349
            b'tlsversions': [
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   350
              b'1.2',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   351
              b'1.3'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   352
            ],
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   353
            b'uris': [
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   354
              b'http://example.com/'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   355
            ]
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   356
          }
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   357
        ]
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   358
      }
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   359
    }
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   360
  ]
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   361
  (sent 2 HTTP requests and * bytes; received * bytes in responses) (glob)
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   362
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   363
Unknown protocol is filtered from compatible targets
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   364
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   365
  $ cat > redirects.py << EOF
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   366
  > [
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   367
  >   {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   368
  >     b'name': b'target-a',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   369
  >     b'protocol': b'http',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   370
  >     b'uris': [b'http://example.com/'],
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   371
  >   },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   372
  >   {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   373
  >     b'name': b'target-b',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   374
  >     b'protocol': b'unknown',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   375
  >     b'uris': [b'unknown://example.com/'],
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   376
  >   },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   377
  > ]
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   378
  > EOF
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   379
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   380
  $ sendhttpv2peerhandshake << EOF
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   381
  > command capabilities
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   382
  > EOF
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   383
  creating http peer for wire protocol version 2
41502
2f7408b7d247 tests: give up and make setsockopt() calls optional in the output
Augie Fackler <augie@google.com>
parents: 41380
diff changeset
   384
  s> setsockopt(6, 1, 1) -> None (?)
40916
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   385
  s>     GET /?cmd=capabilities HTTP/1.1\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   386
  s>     Accept-Encoding: identity\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   387
  s>     vary: X-HgProto-1,X-HgUpgrade-1\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   388
  s>     x-hgproto-1: cbor\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   389
  s>     x-hgupgrade-1: exp-http-v2-0003\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   390
  s>     accept: application/mercurial-0.1\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   391
  s>     host: $LOCALIP:$HGPORT\r\n (glob)
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   392
  s>     user-agent: Mercurial debugwireproto\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   393
  s>     \r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   394
  s> makefile('rb', None)
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   395
  s>     HTTP/1.1 200 OK\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   396
  s>     Server: testing stub value\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   397
  s>     Date: $HTTP_DATE$\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   398
  s>     Content-Type: application/mercurial-cbor\r\n
44412
edc8504bc26b exchange: turn on option that makes concurrent pushes work better
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 41502
diff changeset
   399
  s>     Content-Length: 2335\r\n
40916
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   400
  s>     \r\n
44412
edc8504bc26b exchange: turn on option that makes concurrent pushes work better
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 41502
diff changeset
   401
  s>     \xa3GapibaseDapi/Dapis\xa1Pexp-http-v2-0003\xa5Hcommands\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\x83LgeneraldeltaHrevlogv1LsparserevlogHredirect\xa2Fhashes\x82Fsha256Dsha1Gtargets\x82\xa3DnameHtarget-aHprotocolDhttpDuris\x81Shttp://example.com/\xa3DnameHtarget-bHprotocolGunknownDuris\x81Vunknown://example.com/Nv1capabilitiesY\x01\xf7batch 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
40916
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   402
  (remote redirect target target-a is compatible)
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   403
  (remote redirect target target-b uses unsupported protocol: unknown)
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   404
  sending capabilities command
41502
2f7408b7d247 tests: give up and make setsockopt() calls optional in the output
Augie Fackler <augie@google.com>
parents: 41380
diff changeset
   405
  s> setsockopt(6, 1, 1) -> None (?)
40916
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   406
  s>     POST /api/exp-http-v2-0003/ro/capabilities HTTP/1.1\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   407
  s>     Accept-Encoding: identity\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   408
  s>     accept: application/mercurial-exp-framing-0006\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   409
  s>     content-type: application/mercurial-exp-framing-0006\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   410
  s>     content-length: 111\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   411
  s>     host: $LOCALIP:$HGPORT\r\n (glob)
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   412
  s>     user-agent: Mercurial debugwireproto\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   413
  s>     \r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   414
  s>     \x1c\x00\x00\x01\x00\x01\x01\x82\xa1Pcontentencodings\x81HidentityC\x00\x00\x01\x00\x01\x00\x11\xa2DnameLcapabilitiesHredirect\xa2Fhashes\x82Fsha256Dsha1Gtargets\x81Htarget-a
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   415
  s> makefile('rb', None)
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   416
  s>     HTTP/1.1 200 OK\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   417
  s>     Server: testing stub value\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   418
  s>     Date: $HTTP_DATE$\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   419
  s>     Content-Type: application/mercurial-exp-framing-0006\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   420
  s>     Transfer-Encoding: chunked\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   421
  s>     \r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   422
  s>     11\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   423
  s>     \t\x00\x00\x01\x00\x02\x01\x92
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   424
  s>     Hidentity
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   425
  s>     \r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   426
  s>     13\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   427
  s>     \x0b\x00\x00\x01\x00\x02\x041
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   428
  s>     \xa1FstatusBok
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   429
  s>     \r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   430
  s>     6f9\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   431
  s>     \xf1\x06\x00\x01\x00\x02\x041
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   432
  s>     \xa5Hcommands\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\x83LgeneraldeltaHrevlogv1LsparserevlogHredirect\xa2Fhashes\x82Fsha256Dsha1Gtargets\x82\xa3DnameHtarget-aHprotocolDhttpDuris\x81Shttp://example.com/\xa3DnameHtarget-bHprotocolGunknownDuris\x81Vunknown://example.com/
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   433
  s>     \r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   434
  s>     8\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   435
  s>     \x00\x00\x00\x01\x00\x02\x002
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   436
  s>     \r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   437
  s>     0\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   438
  s>     \r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   439
  response: gen[
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   440
    {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   441
      b'commands': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   442
        b'branchmap': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   443
          b'args': {},
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   444
          b'permissions': [
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   445
            b'pull'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   446
          ]
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   447
        },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   448
        b'capabilities': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   449
          b'args': {},
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   450
          b'permissions': [
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   451
            b'pull'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   452
          ]
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   453
        },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   454
        b'changesetdata': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   455
          b'args': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   456
            b'fields': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   457
              b'default': set([]),
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   458
              b'required': False,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   459
              b'type': b'set',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   460
              b'validvalues': set([
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   461
                b'bookmarks',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   462
                b'parents',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   463
                b'phase',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   464
                b'revision'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   465
              ])
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   466
            },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   467
            b'revisions': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   468
              b'required': True,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   469
              b'type': b'list'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   470
            }
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   471
          },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   472
          b'permissions': [
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   473
            b'pull'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   474
          ]
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   475
        },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   476
        b'filedata': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   477
          b'args': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   478
            b'fields': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   479
              b'default': set([]),
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   480
              b'required': False,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   481
              b'type': b'set',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   482
              b'validvalues': set([
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   483
                b'linknode',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   484
                b'parents',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   485
                b'revision'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   486
              ])
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   487
            },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   488
            b'haveparents': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   489
              b'default': False,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   490
              b'required': False,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   491
              b'type': b'bool'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   492
            },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   493
            b'nodes': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   494
              b'required': True,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   495
              b'type': b'list'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   496
            },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   497
            b'path': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   498
              b'required': True,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   499
              b'type': b'bytes'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   500
            }
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   501
          },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   502
          b'permissions': [
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   503
            b'pull'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   504
          ]
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   505
        },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   506
        b'filesdata': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   507
          b'args': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   508
            b'fields': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   509
              b'default': set([]),
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   510
              b'required': False,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   511
              b'type': b'set',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   512
              b'validvalues': set([
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   513
                b'firstchangeset',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   514
                b'linknode',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   515
                b'parents',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   516
                b'revision'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   517
              ])
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   518
            },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   519
            b'haveparents': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   520
              b'default': False,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   521
              b'required': False,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   522
              b'type': b'bool'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   523
            },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   524
            b'pathfilter': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   525
              b'default': None,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   526
              b'required': False,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   527
              b'type': b'dict'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   528
            },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   529
            b'revisions': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   530
              b'required': True,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   531
              b'type': b'list'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   532
            }
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   533
          },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   534
          b'permissions': [
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   535
            b'pull'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   536
          ],
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   537
          b'recommendedbatchsize': 50000
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   538
        },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   539
        b'heads': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   540
          b'args': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   541
            b'publiconly': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   542
              b'default': False,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   543
              b'required': False,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   544
              b'type': b'bool'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   545
            }
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   546
          },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   547
          b'permissions': [
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   548
            b'pull'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   549
          ]
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   550
        },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   551
        b'known': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   552
          b'args': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   553
            b'nodes': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   554
              b'default': [],
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   555
              b'required': False,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   556
              b'type': b'list'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   557
            }
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   558
          },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   559
          b'permissions': [
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   560
            b'pull'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   561
          ]
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   562
        },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   563
        b'listkeys': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   564
          b'args': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   565
            b'namespace': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   566
              b'required': True,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   567
              b'type': b'bytes'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   568
            }
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   569
          },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   570
          b'permissions': [
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   571
            b'pull'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   572
          ]
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   573
        },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   574
        b'lookup': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   575
          b'args': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   576
            b'key': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   577
              b'required': True,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   578
              b'type': b'bytes'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   579
            }
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   580
          },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   581
          b'permissions': [
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   582
            b'pull'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   583
          ]
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   584
        },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   585
        b'manifestdata': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   586
          b'args': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   587
            b'fields': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   588
              b'default': set([]),
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   589
              b'required': False,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   590
              b'type': b'set',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   591
              b'validvalues': set([
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   592
                b'parents',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   593
                b'revision'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   594
              ])
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   595
            },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   596
            b'haveparents': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   597
              b'default': False,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   598
              b'required': False,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   599
              b'type': b'bool'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   600
            },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   601
            b'nodes': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   602
              b'required': True,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   603
              b'type': b'list'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   604
            },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   605
            b'tree': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   606
              b'required': True,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   607
              b'type': b'bytes'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   608
            }
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   609
          },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   610
          b'permissions': [
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   611
            b'pull'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   612
          ],
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   613
          b'recommendedbatchsize': 100000
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   614
        },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   615
        b'pushkey': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   616
          b'args': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   617
            b'key': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   618
              b'required': True,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   619
              b'type': b'bytes'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   620
            },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   621
            b'namespace': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   622
              b'required': True,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   623
              b'type': b'bytes'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   624
            },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   625
            b'new': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   626
              b'required': True,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   627
              b'type': b'bytes'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   628
            },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   629
            b'old': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   630
              b'required': True,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   631
              b'type': b'bytes'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   632
            }
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   633
          },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   634
          b'permissions': [
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   635
            b'push'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   636
          ]
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   637
        },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   638
        b'rawstorefiledata': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   639
          b'args': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   640
            b'files': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   641
              b'required': True,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   642
              b'type': b'list'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   643
            },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   644
            b'pathfilter': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   645
              b'default': None,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   646
              b'required': False,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   647
              b'type': b'list'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   648
            }
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   649
          },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   650
          b'permissions': [
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   651
            b'pull'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   652
          ]
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   653
        }
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   654
      },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   655
      b'framingmediatypes': [
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   656
        b'application/mercurial-exp-framing-0006'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   657
      ],
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   658
      b'pathfilterprefixes': set([
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   659
        b'path:',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   660
        b'rootfilesin:'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   661
      ]),
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   662
      b'rawrepoformats': [
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   663
        b'generaldelta',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   664
        b'revlogv1',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   665
        b'sparserevlog'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   666
      ],
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   667
      b'redirect': {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   668
        b'hashes': [
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   669
          b'sha256',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   670
          b'sha1'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   671
        ],
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   672
        b'targets': [
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   673
          {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   674
            b'name': b'target-a',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   675
            b'protocol': b'http',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   676
            b'uris': [
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   677
              b'http://example.com/'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   678
            ]
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   679
          },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   680
          {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   681
            b'name': b'target-b',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   682
            b'protocol': b'unknown',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   683
            b'uris': [
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   684
              b'unknown://example.com/'
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   685
            ]
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   686
          }
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   687
        ]
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   688
      }
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   689
    }
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   690
  ]
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   691
  (sent 2 HTTP requests and * bytes; received * bytes in responses) (glob)
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   692
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   693
Missing SNI support filters targets that require SNI
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   694
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   695
  $ cat > nosni.py << EOF
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   696
  > from mercurial import sslutil
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   697
  > sslutil.hassni = False
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   698
  > EOF
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   699
  $ cat >> $HGRCPATH << EOF
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   700
  > [extensions]
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   701
  > nosni=`pwd`/nosni.py
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   702
  > EOF
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   703
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   704
  $ cat > redirects.py << EOF
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   705
  > [
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   706
  >   {
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   707
  >     b'name': b'target-bad-tls',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   708
  >     b'protocol': b'https',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   709
  >     b'uris': [b'https://example.com/'],
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   710
  >     b'snirequired': True,
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   711
  >   },
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   712
  > ]
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   713
  > EOF
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   714
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   715
  $ sendhttpv2peerhandshake << EOF
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   716
  > command capabilities
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   717
  > EOF
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   718
  creating http peer for wire protocol version 2
41502
2f7408b7d247 tests: give up and make setsockopt() calls optional in the output
Augie Fackler <augie@google.com>
parents: 41380
diff changeset
   719
  s> setsockopt(6, 1, 1) -> None (?)
40916
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   720
  s>     GET /?cmd=capabilities HTTP/1.1\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   721
  s>     Accept-Encoding: identity\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   722
  s>     vary: X-HgProto-1,X-HgUpgrade-1\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   723
  s>     x-hgproto-1: cbor\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   724
  s>     x-hgupgrade-1: exp-http-v2-0003\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   725
  s>     accept: application/mercurial-0.1\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   726
  s>     host: $LOCALIP:$HGPORT\r\n (glob)
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   727
  s>     user-agent: Mercurial debugwireproto\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   728
  s>     \r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   729
  s> makefile('rb', None)
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   730
  s>     HTTP/1.1 200 OK\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   731
  s>     Server: testing stub value\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   732
  s>     Date: $HTTP_DATE$\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   733
  s>     Content-Type: application/mercurial-cbor\r\n
44412
edc8504bc26b exchange: turn on option that makes concurrent pushes work better
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 41502
diff changeset
   734
  s>     Content-Length: 2295\r\n
40916
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   735
  s>     \r\n
44412
edc8504bc26b exchange: turn on option that makes concurrent pushes work better
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 41502
diff changeset
   736
  s>     \xa3GapibaseDapi/Dapis\xa1Pexp-http-v2-0003\xa5Hcommands\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\x83LgeneraldeltaHrevlogv1LsparserevlogHredirect\xa2Fhashes\x82Fsha256Dsha1Gtargets\x81\xa4DnameNtarget-bad-tlsHprotocolEhttpsKsnirequired\xf5Duris\x81Thttps://example.com/Nv1capabilitiesY\x01\xf7batch 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
40916
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   737
  (redirect target target-bad-tls requires SNI, which is unsupported)
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   738
  sending capabilities command
41502
2f7408b7d247 tests: give up and make setsockopt() calls optional in the output
Augie Fackler <augie@google.com>
parents: 41380
diff changeset
   739
  s> setsockopt(6, 1, 1) -> None (?)
40916
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   740
  s>     POST /api/exp-http-v2-0003/ro/capabilities HTTP/1.1\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   741
  s>     Accept-Encoding: identity\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   742
  s>     accept: application/mercurial-exp-framing-0006\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   743
  s>     content-type: application/mercurial-exp-framing-0006\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   744
  s>     content-length: 102\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   745
  s>     host: $LOCALIP:$HGPORT\r\n (glob)
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   746
  s>     user-agent: Mercurial debugwireproto\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   747
  s>     \r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   748
  s>     \x1c\x00\x00\x01\x00\x01\x01\x82\xa1Pcontentencodings\x81Hidentity:\x00\x00\x01\x00\x01\x00\x11\xa2DnameLcapabilitiesHredirect\xa2Fhashes\x82Fsha256Dsha1Gtargets\x80
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   749
  s> makefile('rb', None)
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   750
  s>     HTTP/1.1 200 OK\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   751
  s>     Server: testing stub value\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   752
  s>     Date: $HTTP_DATE$\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   753
  s>     Content-Type: application/mercurial-exp-framing-0006\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   754
  s>     Transfer-Encoding: chunked\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   755
  s>     \r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   756
  s>     11\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   757
  s>     \t\x00\x00\x01\x00\x02\x01\x92
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   758
  s>     Hidentity
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   759
  s>     \r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   760
  s>     13\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   761
  s>     \x0b\x00\x00\x01\x00\x02\x041
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   762
  s>     \xa1FstatusBok
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   763
  s>     \r\n
40391
abbd077965c0 wireprotov2: support exposing linknode of file revisions
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40329
diff changeset
   764
  s>     6d1\r\n
abbd077965c0 wireprotov2: support exposing linknode of file revisions
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40329
diff changeset
   765
  s>     \xc9\x06\x00\x01\x00\x02\x041
40916
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   766
  s>     \xa5Hcommands\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\x83LgeneraldeltaHrevlogv1LsparserevlogHredirect\xa2Fhashes\x82Fsha256Dsha1Gtargets\x81\xa4DnameNtarget-bad-tlsHprotocolEhttpsKsnirequired\xf5Duris\x81Thttps://example.com/
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   767
  s>     \r\n
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   768
  s>     8\r\n
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   769
  s>     \x00\x00\x00\x01\x00\x02\x002
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   770
  s>     \r\n
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   771
  s>     0\r\n
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   772
  s>     \r\n
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   773
  response: gen[
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   774
    {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   775
      b'commands': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   776
        b'branchmap': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   777
          b'args': {},
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   778
          b'permissions': [
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   779
            b'pull'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   780
          ]
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   781
        },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   782
        b'capabilities': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   783
          b'args': {},
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   784
          b'permissions': [
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   785
            b'pull'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   786
          ]
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   787
        },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   788
        b'changesetdata': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   789
          b'args': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   790
            b'fields': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   791
              b'default': set([]),
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   792
              b'required': False,
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   793
              b'type': b'set',
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   794
              b'validvalues': set([
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   795
                b'bookmarks',
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   796
                b'parents',
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   797
                b'phase',
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   798
                b'revision'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   799
              ])
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   800
            },
40176
41263df08109 wireprotov2: change how revisions are specified to changesetdata
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40172
diff changeset
   801
            b'revisions': {
41263df08109 wireprotov2: change how revisions are specified to changesetdata
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40172
diff changeset
   802
              b'required': True,
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   803
              b'type': b'list'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   804
            }
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   805
          },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   806
          b'permissions': [
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   807
            b'pull'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   808
          ]
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   809
        },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   810
        b'filedata': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   811
          b'args': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   812
            b'fields': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   813
              b'default': set([]),
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   814
              b'required': False,
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   815
              b'type': b'set',
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   816
              b'validvalues': set([
40391
abbd077965c0 wireprotov2: support exposing linknode of file revisions
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40329
diff changeset
   817
                b'linknode',
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   818
                b'parents',
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   819
                b'revision'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   820
              ])
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   821
            },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   822
            b'haveparents': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   823
              b'default': False,
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   824
              b'required': False,
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   825
              b'type': b'bool'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   826
            },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   827
            b'nodes': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   828
              b'required': True,
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   829
              b'type': b'list'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   830
            },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   831
            b'path': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   832
              b'required': True,
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   833
              b'type': b'bytes'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   834
            }
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   835
          },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   836
          b'permissions': [
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   837
            b'pull'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   838
          ]
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   839
        },
40178
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
   840
        b'filesdata': {
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
   841
          b'args': {
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
   842
            b'fields': {
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
   843
              b'default': set([]),
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
   844
              b'required': False,
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
   845
              b'type': b'set',
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
   846
              b'validvalues': set([
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
   847
                b'firstchangeset',
40391
abbd077965c0 wireprotov2: support exposing linknode of file revisions
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40329
diff changeset
   848
                b'linknode',
40178
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
   849
                b'parents',
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
   850
                b'revision'
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
   851
              ])
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
   852
            },
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
   853
            b'haveparents': {
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
   854
              b'default': False,
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
   855
              b'required': False,
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
   856
              b'type': b'bool'
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
   857
            },
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
   858
            b'pathfilter': {
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
   859
              b'default': None,
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
   860
              b'required': False,
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
   861
              b'type': b'dict'
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
   862
            },
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
   863
            b'revisions': {
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
   864
              b'required': True,
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
   865
              b'type': b'list'
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
   866
            }
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
   867
          },
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
   868
          b'permissions': [
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
   869
            b'pull'
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
   870
          ],
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
   871
          b'recommendedbatchsize': 50000
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
   872
        },
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   873
        b'heads': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   874
          b'args': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   875
            b'publiconly': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   876
              b'default': False,
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   877
              b'required': False,
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   878
              b'type': b'bool'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   879
            }
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   880
          },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   881
          b'permissions': [
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   882
            b'pull'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   883
          ]
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   884
        },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   885
        b'known': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   886
          b'args': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   887
            b'nodes': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   888
              b'default': [],
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   889
              b'required': False,
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   890
              b'type': b'list'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   891
            }
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   892
          },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   893
          b'permissions': [
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   894
            b'pull'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   895
          ]
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   896
        },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   897
        b'listkeys': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   898
          b'args': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   899
            b'namespace': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   900
              b'required': True,
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   901
              b'type': b'bytes'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   902
            }
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   903
          },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   904
          b'permissions': [
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   905
            b'pull'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   906
          ]
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   907
        },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   908
        b'lookup': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   909
          b'args': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   910
            b'key': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   911
              b'required': True,
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   912
              b'type': b'bytes'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   913
            }
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   914
          },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   915
          b'permissions': [
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   916
            b'pull'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   917
          ]
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   918
        },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   919
        b'manifestdata': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   920
          b'args': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   921
            b'fields': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   922
              b'default': set([]),
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   923
              b'required': False,
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   924
              b'type': b'set',
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   925
              b'validvalues': set([
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   926
                b'parents',
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   927
                b'revision'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   928
              ])
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   929
            },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   930
            b'haveparents': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   931
              b'default': False,
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   932
              b'required': False,
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   933
              b'type': b'bool'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   934
            },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   935
            b'nodes': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   936
              b'required': True,
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   937
              b'type': b'list'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   938
            },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   939
            b'tree': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   940
              b'required': True,
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   941
              b'type': b'bytes'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   942
            }
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   943
          },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   944
          b'permissions': [
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   945
            b'pull'
40172
30f70d11c224 wireprotov2: advertise recommended batch size for requests
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40138
diff changeset
   946
          ],
30f70d11c224 wireprotov2: advertise recommended batch size for requests
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40138
diff changeset
   947
          b'recommendedbatchsize': 100000
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   948
        },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   949
        b'pushkey': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   950
          b'args': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   951
            b'key': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   952
              b'required': True,
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   953
              b'type': b'bytes'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   954
            },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   955
            b'namespace': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   956
              b'required': True,
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   957
              b'type': b'bytes'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   958
            },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   959
            b'new': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   960
              b'required': True,
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   961
              b'type': b'bytes'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   962
            },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   963
            b'old': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   964
              b'required': True,
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   965
              b'type': b'bytes'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   966
            }
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   967
          },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   968
          b'permissions': [
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   969
            b'push'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   970
          ]
40329
ed55a0077490 wireprotov2: implement command for retrieving raw store files
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40178
diff changeset
   971
        },
ed55a0077490 wireprotov2: implement command for retrieving raw store files
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40178
diff changeset
   972
        b'rawstorefiledata': {
ed55a0077490 wireprotov2: implement command for retrieving raw store files
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40178
diff changeset
   973
          b'args': {
ed55a0077490 wireprotov2: implement command for retrieving raw store files
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40178
diff changeset
   974
            b'files': {
ed55a0077490 wireprotov2: implement command for retrieving raw store files
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40178
diff changeset
   975
              b'required': True,
ed55a0077490 wireprotov2: implement command for retrieving raw store files
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40178
diff changeset
   976
              b'type': b'list'
ed55a0077490 wireprotov2: implement command for retrieving raw store files
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40178
diff changeset
   977
            },
ed55a0077490 wireprotov2: implement command for retrieving raw store files
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40178
diff changeset
   978
            b'pathfilter': {
ed55a0077490 wireprotov2: implement command for retrieving raw store files
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40178
diff changeset
   979
              b'default': None,
ed55a0077490 wireprotov2: implement command for retrieving raw store files
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40178
diff changeset
   980
              b'required': False,
ed55a0077490 wireprotov2: implement command for retrieving raw store files
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40178
diff changeset
   981
              b'type': b'list'
ed55a0077490 wireprotov2: implement command for retrieving raw store files
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40178
diff changeset
   982
            }
ed55a0077490 wireprotov2: implement command for retrieving raw store files
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40178
diff changeset
   983
          },
ed55a0077490 wireprotov2: implement command for retrieving raw store files
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40178
diff changeset
   984
          b'permissions': [
ed55a0077490 wireprotov2: implement command for retrieving raw store files
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40178
diff changeset
   985
            b'pull'
ed55a0077490 wireprotov2: implement command for retrieving raw store files
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40178
diff changeset
   986
          ]
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   987
        }
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   988
      },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   989
      b'framingmediatypes': [
40133
762ef19a07e3 wireprotov2: send protocol settings frame from client
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40123
diff changeset
   990
        b'application/mercurial-exp-framing-0006'
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   991
      ],
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   992
      b'pathfilterprefixes': set([
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   993
        b'path:',
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   994
        b'rootfilesin:'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   995
      ]),
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   996
      b'rawrepoformats': [
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   997
        b'generaldelta',
40916
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   998
        b'revlogv1',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
   999
        b'sparserevlog'
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1000
      ],
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1001
      b'redirect': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1002
        b'hashes': [
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1003
          b'sha256',
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1004
          b'sha1'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1005
        ],
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1006
        b'targets': [
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1007
          {
40916
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
  1008
            b'name': b'target-bad-tls',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
  1009
            b'protocol': b'https',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
  1010
            b'snirequired': True,
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1011
            b'uris': [
40916
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
  1012
              b'https://example.com/'
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1013
            ]
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1014
          }
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1015
        ]
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1016
      }
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1017
    }
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1018
  ]
40034
393e44324037 httppeer: report http statistics
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40026
diff changeset
  1019
  (sent 2 HTTP requests and * bytes; received * bytes in responses) (glob)
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1020
40916
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
  1021
  $ cat >> $HGRCPATH << EOF
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
  1022
  > [extensions]
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
  1023
  > nosni=!
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
  1024
  > EOF
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
  1025
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
  1026
Unknown tls value is filtered from compatible targets
40024
86b22a4cfab1 wireprotov2: client support for advertising redirect targets
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40023
diff changeset
  1027
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1028
  $ cat > redirects.py << EOF
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1029
  > [
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1030
  >   {
40916
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
  1031
  >     b'name': b'target-bad-tls',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
  1032
  >     b'protocol': b'https',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
  1033
  >     b'uris': [b'https://example.com/'],
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
  1034
  >     b'tlsversions': [b'42', b'39'],
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1035
  >   },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1036
  > ]
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1037
  > EOF
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1038
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1039
  $ sendhttpv2peerhandshake << EOF
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1040
  > command capabilities
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1041
  > EOF
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1042
  creating http peer for wire protocol version 2
41502
2f7408b7d247 tests: give up and make setsockopt() calls optional in the output
Augie Fackler <augie@google.com>
parents: 41380
diff changeset
  1043
  s> setsockopt(6, 1, 1) -> None (?)
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1044
  s>     GET /?cmd=capabilities HTTP/1.1\r\n
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1045
  s>     Accept-Encoding: identity\r\n
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1046
  s>     vary: X-HgProto-1,X-HgUpgrade-1\r\n
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1047
  s>     x-hgproto-1: cbor\r\n
40176
41263df08109 wireprotov2: change how revisions are specified to changesetdata
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40172
diff changeset
  1048
  s>     x-hgupgrade-1: exp-http-v2-0003\r\n
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1049
  s>     accept: application/mercurial-0.1\r\n
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1050
  s>     host: $LOCALIP:$HGPORT\r\n (glob)
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1051
  s>     user-agent: Mercurial debugwireproto\r\n
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1052
  s>     \r\n
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1053
  s> makefile('rb', None)
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1054
  s>     HTTP/1.1 200 OK\r\n
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1055
  s>     Server: testing stub value\r\n
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1056
  s>     Date: $HTTP_DATE$\r\n
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1057
  s>     Content-Type: application/mercurial-cbor\r\n
44412
edc8504bc26b exchange: turn on option that makes concurrent pushes work better
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 41502
diff changeset
  1058
  s>     Content-Length: 2301\r\n
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1059
  s>     \r\n
44412
edc8504bc26b exchange: turn on option that makes concurrent pushes work better
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 41502
diff changeset
  1060
  s>     \xa3GapibaseDapi/Dapis\xa1Pexp-http-v2-0003\xa5Hcommands\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\x83LgeneraldeltaHrevlogv1LsparserevlogHredirect\xa2Fhashes\x82Fsha256Dsha1Gtargets\x81\xa4DnameNtarget-bad-tlsHprotocolEhttpsKtlsversions\x82B42B39Duris\x81Thttps://example.com/Nv1capabilitiesY\x01\xf7batch 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
40916
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
  1061
  (remote redirect target target-bad-tls requires unsupported TLS versions: 39, 42)
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1062
  sending capabilities command
41502
2f7408b7d247 tests: give up and make setsockopt() calls optional in the output
Augie Fackler <augie@google.com>
parents: 41380
diff changeset
  1063
  s> setsockopt(6, 1, 1) -> None (?)
40176
41263df08109 wireprotov2: change how revisions are specified to changesetdata
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40172
diff changeset
  1064
  s>     POST /api/exp-http-v2-0003/ro/capabilities HTTP/1.1\r\n
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1065
  s>     Accept-Encoding: identity\r\n
40133
762ef19a07e3 wireprotov2: send protocol settings frame from client
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40123
diff changeset
  1066
  s>     accept: application/mercurial-exp-framing-0006\r\n
762ef19a07e3 wireprotov2: send protocol settings frame from client
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40123
diff changeset
  1067
  s>     content-type: application/mercurial-exp-framing-0006\r\n
40916
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
  1068
  s>     content-length: 102\r\n
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1069
  s>     host: $LOCALIP:$HGPORT\r\n (glob)
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1070
  s>     user-agent: Mercurial debugwireproto\r\n
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1071
  s>     \r\n
40916
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
  1072
  s>     \x1c\x00\x00\x01\x00\x01\x01\x82\xa1Pcontentencodings\x81Hidentity:\x00\x00\x01\x00\x01\x00\x11\xa2DnameLcapabilitiesHredirect\xa2Fhashes\x82Fsha256Dsha1Gtargets\x80
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1073
  s> makefile('rb', None)
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1074
  s>     HTTP/1.1 200 OK\r\n
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1075
  s>     Server: testing stub value\r\n
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1076
  s>     Date: $HTTP_DATE$\r\n
40133
762ef19a07e3 wireprotov2: send protocol settings frame from client
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40123
diff changeset
  1077
  s>     Content-Type: application/mercurial-exp-framing-0006\r\n
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1078
  s>     Transfer-Encoding: chunked\r\n
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1079
  s>     \r\n
40138
b5bf3dd6ec5b wireprotov2: send content encoded frames from server
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40133
diff changeset
  1080
  s>     11\r\n
b5bf3dd6ec5b wireprotov2: send content encoded frames from server
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40133
diff changeset
  1081
  s>     \t\x00\x00\x01\x00\x02\x01\x92
b5bf3dd6ec5b wireprotov2: send content encoded frames from server
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40133
diff changeset
  1082
  s>     Hidentity
b5bf3dd6ec5b wireprotov2: send content encoded frames from server
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40133
diff changeset
  1083
  s>     \r\n
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1084
  s>     13\r\n
40138
b5bf3dd6ec5b wireprotov2: send content encoded frames from server
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40133
diff changeset
  1085
  s>     \x0b\x00\x00\x01\x00\x02\x041
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1086
  s>     \xa1FstatusBok
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1087
  s>     \r\n
40916
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
  1088
  s>     6d7\r\n
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
  1089
  s>     \xcf\x06\x00\x01\x00\x02\x041
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
  1090
  s>     \xa5Hcommands\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\x83LgeneraldeltaHrevlogv1LsparserevlogHredirect\xa2Fhashes\x82Fsha256Dsha1Gtargets\x81\xa4DnameNtarget-bad-tlsHprotocolEhttpsKtlsversions\x82B42B39Duris\x81Thttps://example.com/
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1091
  s>     \r\n
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1092
  s>     8\r\n
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1093
  s>     \x00\x00\x00\x01\x00\x02\x002
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1094
  s>     \r\n
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1095
  s>     0\r\n
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1096
  s>     \r\n
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1097
  response: gen[
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1098
    {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1099
      b'commands': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1100
        b'branchmap': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1101
          b'args': {},
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1102
          b'permissions': [
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1103
            b'pull'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1104
          ]
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1105
        },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1106
        b'capabilities': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1107
          b'args': {},
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1108
          b'permissions': [
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1109
            b'pull'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1110
          ]
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1111
        },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1112
        b'changesetdata': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1113
          b'args': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1114
            b'fields': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1115
              b'default': set([]),
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1116
              b'required': False,
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1117
              b'type': b'set',
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1118
              b'validvalues': set([
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1119
                b'bookmarks',
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1120
                b'parents',
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1121
                b'phase',
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1122
                b'revision'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1123
              ])
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1124
            },
40176
41263df08109 wireprotov2: change how revisions are specified to changesetdata
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40172
diff changeset
  1125
            b'revisions': {
41263df08109 wireprotov2: change how revisions are specified to changesetdata
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40172
diff changeset
  1126
              b'required': True,
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1127
              b'type': b'list'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1128
            }
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1129
          },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1130
          b'permissions': [
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1131
            b'pull'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1132
          ]
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1133
        },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1134
        b'filedata': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1135
          b'args': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1136
            b'fields': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1137
              b'default': set([]),
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1138
              b'required': False,
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1139
              b'type': b'set',
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1140
              b'validvalues': set([
40391
abbd077965c0 wireprotov2: support exposing linknode of file revisions
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40329
diff changeset
  1141
                b'linknode',
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1142
                b'parents',
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1143
                b'revision'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1144
              ])
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1145
            },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1146
            b'haveparents': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1147
              b'default': False,
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1148
              b'required': False,
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1149
              b'type': b'bool'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1150
            },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1151
            b'nodes': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1152
              b'required': True,
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1153
              b'type': b'list'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1154
            },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1155
            b'path': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1156
              b'required': True,
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1157
              b'type': b'bytes'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1158
            }
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1159
          },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1160
          b'permissions': [
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1161
            b'pull'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1162
          ]
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1163
        },
40178
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
  1164
        b'filesdata': {
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
  1165
          b'args': {
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
  1166
            b'fields': {
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
  1167
              b'default': set([]),
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
  1168
              b'required': False,
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
  1169
              b'type': b'set',
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
  1170
              b'validvalues': set([
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
  1171
                b'firstchangeset',
40391
abbd077965c0 wireprotov2: support exposing linknode of file revisions
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40329
diff changeset
  1172
                b'linknode',
40178
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
  1173
                b'parents',
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
  1174
                b'revision'
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
  1175
              ])
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
  1176
            },
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
  1177
            b'haveparents': {
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
  1178
              b'default': False,
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
  1179
              b'required': False,
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
  1180
              b'type': b'bool'
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
  1181
            },
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
  1182
            b'pathfilter': {
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
  1183
              b'default': None,
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
  1184
              b'required': False,
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
  1185
              b'type': b'dict'
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
  1186
            },
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
  1187
            b'revisions': {
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
  1188
              b'required': True,
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
  1189
              b'type': b'list'
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
  1190
            }
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
  1191
          },
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
  1192
          b'permissions': [
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
  1193
            b'pull'
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
  1194
          ],
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
  1195
          b'recommendedbatchsize': 50000
46a40bce3ae0 wireprotov2: define and implement "filesdata" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40176
diff changeset
  1196
        },
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1197
        b'heads': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1198
          b'args': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1199
            b'publiconly': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1200
              b'default': False,
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1201
              b'required': False,
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1202
              b'type': b'bool'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1203
            }
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1204
          },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1205
          b'permissions': [
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1206
            b'pull'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1207
          ]
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1208
        },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1209
        b'known': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1210
          b'args': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1211
            b'nodes': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1212
              b'default': [],
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1213
              b'required': False,
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1214
              b'type': b'list'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1215
            }
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1216
          },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1217
          b'permissions': [
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1218
            b'pull'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1219
          ]
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1220
        },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1221
        b'listkeys': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1222
          b'args': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1223
            b'namespace': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1224
              b'required': True,
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1225
              b'type': b'bytes'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1226
            }
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1227
          },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1228
          b'permissions': [
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1229
            b'pull'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1230
          ]
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1231
        },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1232
        b'lookup': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1233
          b'args': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1234
            b'key': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1235
              b'required': True,
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1236
              b'type': b'bytes'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1237
            }
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1238
          },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1239
          b'permissions': [
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1240
            b'pull'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1241
          ]
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1242
        },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1243
        b'manifestdata': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1244
          b'args': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1245
            b'fields': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1246
              b'default': set([]),
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1247
              b'required': False,
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1248
              b'type': b'set',
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1249
              b'validvalues': set([
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1250
                b'parents',
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1251
                b'revision'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1252
              ])
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1253
            },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1254
            b'haveparents': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1255
              b'default': False,
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1256
              b'required': False,
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1257
              b'type': b'bool'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1258
            },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1259
            b'nodes': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1260
              b'required': True,
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1261
              b'type': b'list'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1262
            },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1263
            b'tree': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1264
              b'required': True,
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1265
              b'type': b'bytes'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1266
            }
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1267
          },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1268
          b'permissions': [
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1269
            b'pull'
40172
30f70d11c224 wireprotov2: advertise recommended batch size for requests
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40138
diff changeset
  1270
          ],
30f70d11c224 wireprotov2: advertise recommended batch size for requests
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40138
diff changeset
  1271
          b'recommendedbatchsize': 100000
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1272
        },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1273
        b'pushkey': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1274
          b'args': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1275
            b'key': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1276
              b'required': True,
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1277
              b'type': b'bytes'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1278
            },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1279
            b'namespace': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1280
              b'required': True,
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1281
              b'type': b'bytes'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1282
            },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1283
            b'new': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1284
              b'required': True,
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1285
              b'type': b'bytes'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1286
            },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1287
            b'old': {
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1288
              b'required': True,
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1289
              b'type': b'bytes'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1290
            }
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1291
          },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1292
          b'permissions': [
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1293
            b'push'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1294
          ]
40329
ed55a0077490 wireprotov2: implement command for retrieving raw store files
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40178
diff changeset
  1295
        },
ed55a0077490 wireprotov2: implement command for retrieving raw store files
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40178
diff changeset
  1296
        b'rawstorefiledata': {
ed55a0077490 wireprotov2: implement command for retrieving raw store files
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40178
diff changeset
  1297
          b'args': {
ed55a0077490 wireprotov2: implement command for retrieving raw store files
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40178
diff changeset
  1298
            b'files': {
ed55a0077490 wireprotov2: implement command for retrieving raw store files
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40178
diff changeset
  1299
              b'required': True,
ed55a0077490 wireprotov2: implement command for retrieving raw store files
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40178
diff changeset
  1300
              b'type': b'list'
ed55a0077490 wireprotov2: implement command for retrieving raw store files
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40178
diff changeset
  1301
            },
ed55a0077490 wireprotov2: implement command for retrieving raw store files
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40178
diff changeset
  1302
            b'pathfilter': {
ed55a0077490 wireprotov2: implement command for retrieving raw store files
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40178
diff changeset
  1303
              b'default': None,
ed55a0077490 wireprotov2: implement command for retrieving raw store files
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40178
diff changeset
  1304
              b'required': False,
ed55a0077490 wireprotov2: implement command for retrieving raw store files
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40178
diff changeset
  1305
              b'type': b'list'
ed55a0077490 wireprotov2: implement command for retrieving raw store files
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40178
diff changeset
  1306
            }
ed55a0077490 wireprotov2: implement command for retrieving raw store files
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40178
diff changeset
  1307
          },
ed55a0077490 wireprotov2: implement command for retrieving raw store files
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40178
diff changeset
  1308
          b'permissions': [
ed55a0077490 wireprotov2: implement command for retrieving raw store files
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40178
diff changeset
  1309
            b'pull'
ed55a0077490 wireprotov2: implement command for retrieving raw store files
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40178
diff changeset
  1310
          ]
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1311
        }
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1312
      },
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1313
      b'framingmediatypes': [
40133
762ef19a07e3 wireprotov2: send protocol settings frame from client
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40123
diff changeset
  1314
        b'application/mercurial-exp-framing-0006'
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1315
      ],
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1316
      b'pathfilterprefixes': set([
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1317
        b'path:',
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1318
        b'rootfilesin:'
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1319
      ]),
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1320
      b'rawrepoformats': [
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1321
        b'generaldelta',
40916
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
  1322
        b'revlogv1',
aeac89e78def test: enable sparse-revlog for test-wireproto-content-redirects.t
Boris Feld <boris.feld@octobus.net>
parents: 40615
diff changeset
  1323
        b'sparserevlog'
40024
86b22a4cfab1 wireprotov2: client support for advertising redirect targets
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40023
diff changeset
  1324
      ],
86b22a4cfab1 wireprotov2: client support for advertising redirect targets
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40023
diff changeset
  1325
      b'redirect': {
86b22a4cfab1 wireprotov2: client support for advertising redirect targets
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40023
diff changeset
  1326
        b'hashes': [
86b22a4cfab1 wireprotov2: client support for advertising redirect targets
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40023
diff changeset
  1327
          b'sha256',
86b22a4cfab1 wireprotov2: client support for advertising redirect targets
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40023
diff changeset
  1328
          b'sha1'
86b22a4cfab1 wireprotov2: client support for advertising redirect targets
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40023
diff changeset
  1329
        ],
86b22a4cfab1 wireprotov2: client support for advertising redirect targets
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40023
diff changeset
  1330
        b'targets': [
86b22a4cfab1 wireprotov2: client support for advertising redirect targets
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40023
diff changeset
  1331
          {
86b22a4cfab1 wireprotov2: client support for advertising redirect targets
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40023
diff changeset
  1332
            b'name': b'target-bad-tls',
86b22a4cfab1 wireprotov2: client support for advertising redirect targets
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40023
diff changeset
  1333
            b'protocol': b'https',
86b22a4cfab1 wireprotov2: client support for advertising redirect targets
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40023
diff changeset
  1334
            b'tlsversions': [
86b22a4cfab1 wireprotov2: client support for advertising redirect targets
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40023
diff changeset
  1335
              b'42',
86b22a4cfab1 wireprotov2: client support for advertising redirect targets
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40023
diff changeset
  1336
              b'39'
86b22a4cfab1 wireprotov2: client support for advertising redirect targets
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40023
diff changeset
  1337
            ],
86b22a4cfab1 wireprotov2: client support for advertising redirect targets
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40023
diff changeset
  1338
            b'uris': [
86b22a4cfab1 wireprotov2: client support for advertising redirect targets
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40023
diff changeset
  1339
              b'https://example.com/'
86b22a4cfab1 wireprotov2: client support for advertising redirect targets
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40023
diff changeset
  1340
            ]
86b22a4cfab1 wireprotov2: client support for advertising redirect targets
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40023
diff changeset
  1341
          }
86b22a4cfab1 wireprotov2: client support for advertising redirect targets
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40023
diff changeset
  1342
        ]
86b22a4cfab1 wireprotov2: client support for advertising redirect targets
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40023
diff changeset
  1343
      }
86b22a4cfab1 wireprotov2: client support for advertising redirect targets
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40023
diff changeset
  1344
    }
86b22a4cfab1 wireprotov2: client support for advertising redirect targets
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40023
diff changeset
  1345
  ]
40034
393e44324037 httppeer: report http statistics
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40026
diff changeset
  1346
  (sent 2 HTTP requests and * bytes; received * bytes in responses) (glob)
40024
86b22a4cfab1 wireprotov2: client support for advertising redirect targets
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40023
diff changeset
  1347
40025
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1348
Set up the server to issue content redirects to its built-in API server.
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1349
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1350
  $ cat > redirects.py << EOF
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1351
  > [
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1352
  >   {
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1353
  >     b'name': b'local',
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1354
  >     b'protocol': b'http',
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1355
  >     b'uris': [b'http://example.com/'],
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1356
  >   },
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1357
  > ]
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1358
  > EOF
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1359
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1360
Request to eventual cache URL should return 404 (validating the cache server works)
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1361
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1362
  $ sendhttpraw << EOF
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1363
  > httprequest GET api/simplecache/missingkey
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1364
  >     user-agent: test
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1365
  > EOF
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1366
  using raw connection to peer
41502
2f7408b7d247 tests: give up and make setsockopt() calls optional in the output
Augie Fackler <augie@google.com>
parents: 41380
diff changeset
  1367
  s> setsockopt(6, 1, 1) -> None (?)
40025
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1368
  s>     GET /api/simplecache/missingkey HTTP/1.1\r\n
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1369
  s>     Accept-Encoding: identity\r\n
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1370
  s>     user-agent: test\r\n
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1371
  s>     host: $LOCALIP:$HGPORT\r\n (glob)
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1372
  s>     \r\n
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1373
  s> makefile('rb', None)
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1374
  s>     HTTP/1.1 404 Not Found\r\n
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1375
  s>     Server: testing stub value\r\n
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1376
  s>     Date: $HTTP_DATE$\r\n
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1377
  s>     Content-Type: text/plain\r\n
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1378
  s>     Content-Length: 22\r\n
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1379
  s>     \r\n
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1380
  s>     key not found in cache
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1381
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1382
Send a cacheable request
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1383
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1384
  $ sendhttpv2peer << EOF
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1385
  > command manifestdata
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1386
  >     nodes eval:[b'\x99\x2f\x47\x79\x02\x9a\x3d\xf8\xd0\x66\x6d\x00\xbb\x92\x4f\x69\x63\x4e\x26\x41']
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1387
  >     tree eval:b''
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1388
  >     fields eval:[b'parents']
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1389
  > EOF
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1390
  creating http peer for wire protocol version 2
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1391
  sending manifestdata command
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1392
  response: gen[
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1393
    {
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1394
      b'totalitems': 1
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1395
    },
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1396
    {
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1397
      b'node': b'\x99/Gy\x02\x9a=\xf8\xd0fm\x00\xbb\x92OicN&A',
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1398
      b'parents': [
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1399
        b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00',
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1400
        b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1401
      ]
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1402
    }
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1403
  ]
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1404
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1405
Cached entry should be available on server
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1406
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1407
  $ sendhttpraw << EOF
40176
41263df08109 wireprotov2: change how revisions are specified to changesetdata
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40172
diff changeset
  1408
  > httprequest GET api/simplecache/47abb8efa5f01b8964d74917793ad2464db0fa2c
40025
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1409
  >     user-agent: test
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1410
  > EOF
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1411
  using raw connection to peer
41502
2f7408b7d247 tests: give up and make setsockopt() calls optional in the output
Augie Fackler <augie@google.com>
parents: 41380
diff changeset
  1412
  s> setsockopt(6, 1, 1) -> None (?)
40176
41263df08109 wireprotov2: change how revisions are specified to changesetdata
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40172
diff changeset
  1413
  s>     GET /api/simplecache/47abb8efa5f01b8964d74917793ad2464db0fa2c HTTP/1.1\r\n
40025
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1414
  s>     Accept-Encoding: identity\r\n
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1415
  s>     user-agent: test\r\n
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1416
  s>     host: $LOCALIP:$HGPORT\r\n (glob)
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1417
  s>     \r\n
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1418
  s> makefile('rb', None)
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1419
  s>     HTTP/1.1 200 OK\r\n
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1420
  s>     Server: testing stub value\r\n
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1421
  s>     Date: $HTTP_DATE$\r\n
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1422
  s>     Content-Type: application/mercurial-cbor\r\n
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1423
  s>     Content-Length: 91\r\n
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1424
  s>     \r\n
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1425
  s>     \xa1Jtotalitems\x01\xa2DnodeT\x99/Gy\x02\x9a=\xf8\xd0fm\x00\xbb\x92OicN&AGparents\x82T\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00T\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1426
  cbor> [
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1427
    {
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1428
      b'totalitems': 1
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1429
    },
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1430
    {
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1431
      b'node': b'\x99/Gy\x02\x9a=\xf8\xd0fm\x00\xbb\x92OicN&A',
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1432
      b'parents': [
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1433
        b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00',
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1434
        b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1435
      ]
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1436
    }
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1437
  ]
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1438
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1439
2nd request should result in content redirect response
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1440
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1441
  $ sendhttpv2peer << EOF
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1442
  > command manifestdata
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1443
  >     nodes eval:[b'\x99\x2f\x47\x79\x02\x9a\x3d\xf8\xd0\x66\x6d\x00\xbb\x92\x4f\x69\x63\x4e\x26\x41']
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1444
  >     tree eval:b''
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1445
  >     fields eval:[b'parents']
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1446
  > EOF
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1447
  creating http peer for wire protocol version 2
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1448
  sending manifestdata command
40026
7e807b8a9e56 wireprotov2: client support for following content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40025
diff changeset
  1449
  response: gen[
7e807b8a9e56 wireprotov2: client support for following content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40025
diff changeset
  1450
    {
7e807b8a9e56 wireprotov2: client support for following content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40025
diff changeset
  1451
      b'totalitems': 1
7e807b8a9e56 wireprotov2: client support for following content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40025
diff changeset
  1452
    },
7e807b8a9e56 wireprotov2: client support for following content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40025
diff changeset
  1453
    {
7e807b8a9e56 wireprotov2: client support for following content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40025
diff changeset
  1454
      b'node': b'\x99/Gy\x02\x9a=\xf8\xd0fm\x00\xbb\x92OicN&A',
7e807b8a9e56 wireprotov2: client support for following content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40025
diff changeset
  1455
      b'parents': [
7e807b8a9e56 wireprotov2: client support for following content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40025
diff changeset
  1456
        b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00',
7e807b8a9e56 wireprotov2: client support for following content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40025
diff changeset
  1457
        b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
7e807b8a9e56 wireprotov2: client support for following content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40025
diff changeset
  1458
      ]
7e807b8a9e56 wireprotov2: client support for following content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40025
diff changeset
  1459
    }
7e807b8a9e56 wireprotov2: client support for following content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40025
diff changeset
  1460
  ]
40025
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1461
40023
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1462
  $ cat error.log
10cf8b116dd8 wireprotov2: advertise redirect targets in capabilities
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
  1463
  $ killdaemons.py
40025
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1464
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1465
  $ cat .hg/blackbox.log
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1466
  *> cacher constructed for manifestdata (glob)
40176
41263df08109 wireprotov2: change how revisions are specified to changesetdata
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40172
diff changeset
  1467
  *> cache miss for 47abb8efa5f01b8964d74917793ad2464db0fa2c (glob)
41263df08109 wireprotov2: change how revisions are specified to changesetdata
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40172
diff changeset
  1468
  *> storing cache entry for 47abb8efa5f01b8964d74917793ad2464db0fa2c (glob)
40025
b099e6032f38 wireprotov2: server support for sending content redirects
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40024
diff changeset
  1469
  *> cacher constructed for manifestdata (glob)
40176
41263df08109 wireprotov2: change how revisions are specified to changesetdata
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40172
diff changeset
  1470
  *> cache hit for 47abb8efa5f01b8964d74917793ad2464db0fa2c (glob)
41263df08109 wireprotov2: change how revisions are specified to changesetdata
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40172
diff changeset
  1471
  *> sending content redirect for 47abb8efa5f01b8964d74917793ad2464db0fa2c to http://*:$HGPORT/api/simplecache/47abb8efa5f01b8964d74917793ad2464db0fa2c (glob)