Show More
@@ -77,6 +77,13 b' commands' | |||||
77 | type |
|
77 | type | |
78 | (bytestring) The type of the argument. e.g. ``bytes`` or ``bool``. |
|
78 | (bytestring) The type of the argument. e.g. ``bytes`` or ``bool``. | |
79 |
|
79 | |||
|
80 | validvalues | |||
|
81 | (set) Values that are recognized for this argument. Some arguments | |||
|
82 | only allow a fixed set of values to be specified. These arguments | |||
|
83 | may advertise that set in this key. If this set is advertised and | |||
|
84 | a value not in this set is specified, the command should result | |||
|
85 | in error. | |||
|
86 | ||||
80 | permissions |
|
87 | permissions | |
81 | An array of permissions required to execute this command. |
|
88 | An array of permissions required to execute this command. | |
82 |
|
89 |
@@ -433,8 +433,6 b' def _capabilitiesv2(repo, proto):' | |||||
433 | 'pathfilterprefixes': set(narrowspec.VALID_PREFIXES), |
|
433 | 'pathfilterprefixes': set(narrowspec.VALID_PREFIXES), | |
434 | } |
|
434 | } | |
435 |
|
435 | |||
436 | # TODO expose available changesetdata fields. |
|
|||
437 |
|
||||
438 | for command, entry in COMMANDS.items(): |
|
436 | for command, entry in COMMANDS.items(): | |
439 | args = {} |
|
437 | args = {} | |
440 |
|
438 | |||
@@ -449,6 +447,9 b' def _capabilitiesv2(repo, proto):' | |||||
449 | if not meta['required']: |
|
447 | if not meta['required']: | |
450 | args[arg][b'default'] = meta['default']() |
|
448 | args[arg][b'default'] = meta['default']() | |
451 |
|
449 | |||
|
450 | if meta['validvalues']: | |||
|
451 | args[arg][b'validvalues'] = meta['validvalues'] | |||
|
452 | ||||
452 | caps['commands'][command] = { |
|
453 | caps['commands'][command] = { | |
453 | 'args': args, |
|
454 | 'args': args, | |
454 | 'permissions': [entry.permission], |
|
455 | 'permissions': [entry.permission], | |
@@ -563,6 +564,9 b' def wireprotocommand(name, args=None, pe' | |||||
563 | ``example`` |
|
564 | ``example`` | |
564 | An example value for this argument. |
|
565 | An example value for this argument. | |
565 |
|
566 | |||
|
567 | ``validvalues`` | |||
|
568 | Set of recognized values for this argument. | |||
|
569 | ||||
566 | ``permission`` defines the permission type needed to run this command. |
|
570 | ``permission`` defines the permission type needed to run this command. | |
567 | Can be ``push`` or ``pull``. These roughly map to read-write and read-only, |
|
571 | Can be ``push`` or ``pull``. These roughly map to read-write and read-only, | |
568 | respectively. Default is to assume command requires ``push`` permissions |
|
572 | respectively. Default is to assume command requires ``push`` permissions | |
@@ -619,6 +623,7 b' def wireprotocommand(name, args=None, pe' | |||||
619 |
|
623 | |||
620 | meta.setdefault('default', lambda: None) |
|
624 | meta.setdefault('default', lambda: None) | |
621 | meta.setdefault('required', False) |
|
625 | meta.setdefault('required', False) | |
|
626 | meta.setdefault('validvalues', None) | |||
622 |
|
627 | |||
623 | def register(func): |
|
628 | def register(func): | |
624 | if name in COMMANDS: |
|
629 | if name in COMMANDS: | |
@@ -656,11 +661,13 b' def capabilitiesv2(repo, proto):' | |||||
656 | 'type': 'set', |
|
661 | 'type': 'set', | |
657 | 'default': set, |
|
662 | 'default': set, | |
658 | 'example': {b'parents', b'revision'}, |
|
663 | 'example': {b'parents', b'revision'}, | |
|
664 | 'validvalues': {b'bookmarks', b'parents', b'phase', b'revision'}, | |||
659 | }, |
|
665 | }, | |
660 | }, |
|
666 | }, | |
661 | permission='pull') |
|
667 | permission='pull') | |
662 | def changesetdata(repo, proto, noderange, nodes, fields): |
|
668 | def changesetdata(repo, proto, noderange, nodes, fields): | |
663 | # TODO look for unknown fields and abort when they can't be serviced. |
|
669 | # TODO look for unknown fields and abort when they can't be serviced. | |
|
670 | # This could probably be validated by dispatcher using validvalues. | |||
664 |
|
671 | |||
665 | if noderange is None and nodes is None: |
|
672 | if noderange is None and nodes is None: | |
666 | raise error.WireprotoCommandError( |
|
673 | raise error.WireprotoCommandError( | |
@@ -808,6 +815,7 b' def getfilestore(repo, proto, path):' | |||||
808 | 'type': 'set', |
|
815 | 'type': 'set', | |
809 | 'default': set, |
|
816 | 'default': set, | |
810 | 'example': {b'parents', b'revision'}, |
|
817 | 'example': {b'parents', b'revision'}, | |
|
818 | 'validvalues': {b'parents', b'revision'}, | |||
811 | }, |
|
819 | }, | |
812 | 'path': { |
|
820 | 'path': { | |
813 | 'type': 'bytes', |
|
821 | 'type': 'bytes', | |
@@ -966,6 +974,7 b' def lookupv2(repo, proto, key):' | |||||
966 | 'type': 'set', |
|
974 | 'type': 'set', | |
967 | 'default': set, |
|
975 | 'default': set, | |
968 | 'example': {b'parents', b'revision'}, |
|
976 | 'example': {b'parents', b'revision'}, | |
|
977 | 'validvalues': {b'parents', b'revision'}, | |||
969 | }, |
|
978 | }, | |
970 | 'tree': { |
|
979 | 'tree': { | |
971 | 'type': 'bytes', |
|
980 | 'type': 'bytes', |
@@ -313,7 +313,7 b' Client with HTTPv2 enabled automatically' | |||||
313 | s> Content-Type: application/mercurial-cbor\r\n |
|
313 | s> Content-Type: application/mercurial-cbor\r\n | |
314 | s> Content-Length: *\r\n (glob) |
|
314 | s> Content-Length: *\r\n (glob) | |
315 | s> \r\n |
|
315 | s> \r\n | |
316 |
s> \xa3GapibaseDapi/Dapis\xa1Pexp-http-v2-0001\xa5Hcommands\xaaIbranchmap\xa2Dargs\xa0Kpermissions\x81DpullLcapabilities\xa2Dargs\xa0Kpermissions\x81DpullMchangesetdata\xa2Dargs\xa3Ffields\xa |
|
316 | s> \xa3GapibaseDapi/Dapis\xa1Pexp-http-v2-0001\xa5Hcommands\xaaIbranchmap\xa2Dargs\xa0Kpermissions\x81DpullLcapabilities\xa2Dargs\xa0Kpermissions\x81DpullMchangesetdata\xa2Dargs\xa3Ffields\xa4Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetKvalidvalues\xd9\x01\x02\x84IbookmarksGparentsEphaseHrevisionInoderange\xa3Gdefault\xf6Hrequired\xf4DtypeDlistEnodes\xa3Gdefault\xf6Hrequired\xf4DtypeDlistKpermissions\x81DpullHfiledata\xa2Dargs\xa4Ffields\xa4Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetKvalidvalues\xd9\x01\x02\x82GparentsHrevisionKhaveparents\xa3Gdefault\xf4Hrequired\xf4DtypeDboolEnodes\xa2Hrequired\xf5DtypeDlistDpath\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullEheads\xa2Dargs\xa1Jpubliconly\xa3Gdefault\xf4Hrequired\xf4DtypeDboolKpermissions\x81DpullEknown\xa2Dargs\xa1Enodes\xa3Gdefault\x80Hrequired\xf4DtypeDlistKpermissions\x81DpullHlistkeys\xa2Dargs\xa1Inamespace\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullFlookup\xa2Dargs\xa1Ckey\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullLmanifestdata\xa2Dargs\xa4Ffields\xa4Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetKvalidvalues\xd9\x01\x02\x82GparentsHrevisionKhaveparents\xa3Gdefault\xf4Hrequired\xf4DtypeDboolEnodes\xa2Hrequired\xf5DtypeDlistDtree\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullGpushkey\xa2Dargs\xa4Ckey\xa2Hrequired\xf5DtypeEbytesInamespace\xa2Hrequired\xf5DtypeEbytesCnew\xa2Hrequired\xf5DtypeEbytesCold\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpushKcompression\x81\xa1DnameDzlibQframingmediatypes\x81X&application/mercurial-exp-framing-0005Rpathfilterprefixes\xd9\x01\x02\x82Epath:Lrootfilesin:Nrawrepoformats\x82LgeneraldeltaHrevlogv1Nv1capabilitiesY\x01\xd3batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset compression=$BUNDLE2_COMPRESSIONS$ getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash | |
317 | sending heads command |
|
317 | sending heads command | |
318 | s> POST /api/exp-http-v2-0001/ro/heads HTTP/1.1\r\n |
|
318 | s> POST /api/exp-http-v2-0001/ro/heads HTTP/1.1\r\n | |
319 | s> Accept-Encoding: identity\r\n |
|
319 | s> Accept-Encoding: identity\r\n |
@@ -212,7 +212,7 b' Request for HTTPv2 service returns infor' | |||||
212 | s> Content-Type: application/mercurial-cbor\r\n |
|
212 | s> Content-Type: application/mercurial-cbor\r\n | |
213 | s> Content-Length: *\r\n (glob) |
|
213 | s> Content-Length: *\r\n (glob) | |
214 | s> \r\n |
|
214 | s> \r\n | |
215 |
s> \xa3GapibaseDapi/Dapis\xa1Pexp-http-v2-0001\xa5Hcommands\xaaIbranchmap\xa2Dargs\xa0Kpermissions\x81DpullLcapabilities\xa2Dargs\xa0Kpermissions\x81DpullMchangesetdata\xa2Dargs\xa3Ffields\xa |
|
215 | s> \xa3GapibaseDapi/Dapis\xa1Pexp-http-v2-0001\xa5Hcommands\xaaIbranchmap\xa2Dargs\xa0Kpermissions\x81DpullLcapabilities\xa2Dargs\xa0Kpermissions\x81DpullMchangesetdata\xa2Dargs\xa3Ffields\xa4Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetKvalidvalues\xd9\x01\x02\x84IbookmarksGparentsEphaseHrevisionInoderange\xa3Gdefault\xf6Hrequired\xf4DtypeDlistEnodes\xa3Gdefault\xf6Hrequired\xf4DtypeDlistKpermissions\x81DpullHfiledata\xa2Dargs\xa4Ffields\xa4Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetKvalidvalues\xd9\x01\x02\x82GparentsHrevisionKhaveparents\xa3Gdefault\xf4Hrequired\xf4DtypeDboolEnodes\xa2Hrequired\xf5DtypeDlistDpath\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullEheads\xa2Dargs\xa1Jpubliconly\xa3Gdefault\xf4Hrequired\xf4DtypeDboolKpermissions\x81DpullEknown\xa2Dargs\xa1Enodes\xa3Gdefault\x80Hrequired\xf4DtypeDlistKpermissions\x81DpullHlistkeys\xa2Dargs\xa1Inamespace\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullFlookup\xa2Dargs\xa1Ckey\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullLmanifestdata\xa2Dargs\xa4Ffields\xa4Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetKvalidvalues\xd9\x01\x02\x82GparentsHrevisionKhaveparents\xa3Gdefault\xf4Hrequired\xf4DtypeDboolEnodes\xa2Hrequired\xf5DtypeDlistDtree\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullGpushkey\xa2Dargs\xa4Ckey\xa2Hrequired\xf5DtypeEbytesInamespace\xa2Hrequired\xf5DtypeEbytesCnew\xa2Hrequired\xf5DtypeEbytesCold\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpushKcompression\x81\xa1DnameDzlibQframingmediatypes\x81X&application/mercurial-exp-framing-0005Rpathfilterprefixes\xd9\x01\x02\x82Epath:Lrootfilesin:Nrawrepoformats\x82LgeneraldeltaHrevlogv1Nv1capabilitiesY\x01\xd3batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset compression=$BUNDLE2_COMPRESSIONS$ getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash | |
216 | cbor> { |
|
216 | cbor> { | |
217 | b'apibase': b'api/', |
|
217 | b'apibase': b'api/', | |
218 | b'apis': { |
|
218 | b'apis': { | |
@@ -235,7 +235,13 b' Request for HTTPv2 service returns infor' | |||||
235 | b'fields': { |
|
235 | b'fields': { | |
236 | b'default': set([]), |
|
236 | b'default': set([]), | |
237 | b'required': False, |
|
237 | b'required': False, | |
238 | b'type': b'set' |
|
238 | b'type': b'set', | |
|
239 | b'validvalues': set([ | |||
|
240 | b'bookmarks', | |||
|
241 | b'parents', | |||
|
242 | b'phase', | |||
|
243 | b'revision' | |||
|
244 | ]) | |||
239 | }, |
|
245 | }, | |
240 | b'noderange': { |
|
246 | b'noderange': { | |
241 | b'default': None, |
|
247 | b'default': None, | |
@@ -257,7 +263,11 b' Request for HTTPv2 service returns infor' | |||||
257 | b'fields': { |
|
263 | b'fields': { | |
258 | b'default': set([]), |
|
264 | b'default': set([]), | |
259 | b'required': False, |
|
265 | b'required': False, | |
260 | b'type': b'set' |
|
266 | b'type': b'set', | |
|
267 | b'validvalues': set([ | |||
|
268 | b'parents', | |||
|
269 | b'revision' | |||
|
270 | ]) | |||
261 | }, |
|
271 | }, | |
262 | b'haveparents': { |
|
272 | b'haveparents': { | |
263 | b'default': False, |
|
273 | b'default': False, | |
@@ -328,7 +338,11 b' Request for HTTPv2 service returns infor' | |||||
328 | b'fields': { |
|
338 | b'fields': { | |
329 | b'default': set([]), |
|
339 | b'default': set([]), | |
330 | b'required': False, |
|
340 | b'required': False, | |
331 | b'type': b'set' |
|
341 | b'type': b'set', | |
|
342 | b'validvalues': set([ | |||
|
343 | b'parents', | |||
|
344 | b'revision' | |||
|
345 | ]) | |||
332 | }, |
|
346 | }, | |
333 | b'haveparents': { |
|
347 | b'haveparents': { | |
334 | b'default': False, |
|
348 | b'default': False, | |
@@ -415,7 +429,7 b' capabilities command returns expected in' | |||||
415 | s> Content-Type: application/mercurial-cbor\r\n |
|
429 | s> Content-Type: application/mercurial-cbor\r\n | |
416 | s> Content-Length: *\r\n (glob) |
|
430 | s> Content-Length: *\r\n (glob) | |
417 | s> \r\n |
|
431 | s> \r\n | |
418 |
s> \xa3GapibaseDapi/Dapis\xa1Pexp-http-v2-0001\xa5Hcommands\xaaIbranchmap\xa2Dargs\xa0Kpermissions\x81DpullLcapabilities\xa2Dargs\xa0Kpermissions\x81DpullMchangesetdata\xa2Dargs\xa3Ffields\xa |
|
432 | s> \xa3GapibaseDapi/Dapis\xa1Pexp-http-v2-0001\xa5Hcommands\xaaIbranchmap\xa2Dargs\xa0Kpermissions\x81DpullLcapabilities\xa2Dargs\xa0Kpermissions\x81DpullMchangesetdata\xa2Dargs\xa3Ffields\xa4Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetKvalidvalues\xd9\x01\x02\x84IbookmarksGparentsEphaseHrevisionInoderange\xa3Gdefault\xf6Hrequired\xf4DtypeDlistEnodes\xa3Gdefault\xf6Hrequired\xf4DtypeDlistKpermissions\x81DpullHfiledata\xa2Dargs\xa4Ffields\xa4Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetKvalidvalues\xd9\x01\x02\x82GparentsHrevisionKhaveparents\xa3Gdefault\xf4Hrequired\xf4DtypeDboolEnodes\xa2Hrequired\xf5DtypeDlistDpath\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullEheads\xa2Dargs\xa1Jpubliconly\xa3Gdefault\xf4Hrequired\xf4DtypeDboolKpermissions\x81DpullEknown\xa2Dargs\xa1Enodes\xa3Gdefault\x80Hrequired\xf4DtypeDlistKpermissions\x81DpullHlistkeys\xa2Dargs\xa1Inamespace\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullFlookup\xa2Dargs\xa1Ckey\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullLmanifestdata\xa2Dargs\xa4Ffields\xa4Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetKvalidvalues\xd9\x01\x02\x82GparentsHrevisionKhaveparents\xa3Gdefault\xf4Hrequired\xf4DtypeDboolEnodes\xa2Hrequired\xf5DtypeDlistDtree\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullGpushkey\xa2Dargs\xa4Ckey\xa2Hrequired\xf5DtypeEbytesInamespace\xa2Hrequired\xf5DtypeEbytesCnew\xa2Hrequired\xf5DtypeEbytesCold\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpushKcompression\x81\xa1DnameDzlibQframingmediatypes\x81X&application/mercurial-exp-framing-0005Rpathfilterprefixes\xd9\x01\x02\x82Epath:Lrootfilesin:Nrawrepoformats\x82LgeneraldeltaHrevlogv1Nv1capabilitiesY\x01\xd3batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset compression=$BUNDLE2_COMPRESSIONS$ getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash | |
419 | sending capabilities command |
|
433 | sending capabilities command | |
420 | s> POST /api/exp-http-v2-0001/ro/capabilities HTTP/1.1\r\n |
|
434 | s> POST /api/exp-http-v2-0001/ro/capabilities HTTP/1.1\r\n | |
421 | s> Accept-Encoding: identity\r\n |
|
435 | s> Accept-Encoding: identity\r\n | |
@@ -438,11 +452,11 b' capabilities command returns expected in' | |||||
438 | s> \xa1FstatusBok |
|
452 | s> \xa1FstatusBok | |
439 | s> \r\n |
|
453 | s> \r\n | |
440 | received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation) |
|
454 | received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation) | |
441 |
s> 48 |
|
455 | s> 4f8\r\n | |
442 |
s> |
|
456 | s> \xf0\x04\x00\x01\x00\x02\x001 | |
443 | s> \xa5Hcommands\xaaIbranchmap\xa2Dargs\xa0Kpermissions\x81DpullLcapabilities\xa2Dargs\xa0Kpermissions\x81DpullMchangesetdata\xa2Dargs\xa3Ffields\xa3Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetInoderange\xa3Gdefault\xf6Hrequired\xf4DtypeDlistEnodes\xa3Gdefault\xf6Hrequired\xf4DtypeDlistKpermissions\x81DpullHfiledata\xa2Dargs\xa4Ffields\xa3Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetKhaveparents\xa3Gdefault\xf4Hrequired\xf4DtypeDboolEnodes\xa2Hrequired\xf5DtypeDlistDpath\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullEheads\xa2Dargs\xa1Jpubliconly\xa3Gdefault\xf4Hrequired\xf4DtypeDboolKpermissions\x81DpullEknown\xa2Dargs\xa1Enodes\xa3Gdefault\x80Hrequired\xf4DtypeDlistKpermissions\x81DpullHlistkeys\xa2Dargs\xa1Inamespace\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullFlookup\xa2Dargs\xa1Ckey\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullLmanifestdata\xa2Dargs\xa4Ffields\xa3Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetKhaveparents\xa3Gdefault\xf4Hrequired\xf4DtypeDboolEnodes\xa2Hrequired\xf5DtypeDlistDtree\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullGpushkey\xa2Dargs\xa4Ckey\xa2Hrequired\xf5DtypeEbytesInamespace\xa2Hrequired\xf5DtypeEbytesCnew\xa2Hrequired\xf5DtypeEbytesCold\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpushKcompression\x81\xa1DnameDzlibQframingmediatypes\x81X&application/mercurial-exp-framing-0005Rpathfilterprefixes\xd9\x01\x02\x82Epath:Lrootfilesin:Nrawrepoformats\x82LgeneraldeltaHrevlogv1 |
|
457 | s> \xa5Hcommands\xaaIbranchmap\xa2Dargs\xa0Kpermissions\x81DpullLcapabilities\xa2Dargs\xa0Kpermissions\x81DpullMchangesetdata\xa2Dargs\xa3Ffields\xa4Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetKvalidvalues\xd9\x01\x02\x84IbookmarksGparentsEphaseHrevisionInoderange\xa3Gdefault\xf6Hrequired\xf4DtypeDlistEnodes\xa3Gdefault\xf6Hrequired\xf4DtypeDlistKpermissions\x81DpullHfiledata\xa2Dargs\xa4Ffields\xa4Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetKvalidvalues\xd9\x01\x02\x82GparentsHrevisionKhaveparents\xa3Gdefault\xf4Hrequired\xf4DtypeDboolEnodes\xa2Hrequired\xf5DtypeDlistDpath\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullEheads\xa2Dargs\xa1Jpubliconly\xa3Gdefault\xf4Hrequired\xf4DtypeDboolKpermissions\x81DpullEknown\xa2Dargs\xa1Enodes\xa3Gdefault\x80Hrequired\xf4DtypeDlistKpermissions\x81DpullHlistkeys\xa2Dargs\xa1Inamespace\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullFlookup\xa2Dargs\xa1Ckey\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullLmanifestdata\xa2Dargs\xa4Ffields\xa4Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetKvalidvalues\xd9\x01\x02\x82GparentsHrevisionKhaveparents\xa3Gdefault\xf4Hrequired\xf4DtypeDboolEnodes\xa2Hrequired\xf5DtypeDlistDtree\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullGpushkey\xa2Dargs\xa4Ckey\xa2Hrequired\xf5DtypeEbytesInamespace\xa2Hrequired\xf5DtypeEbytesCnew\xa2Hrequired\xf5DtypeEbytesCold\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpushKcompression\x81\xa1DnameDzlibQframingmediatypes\x81X&application/mercurial-exp-framing-0005Rpathfilterprefixes\xd9\x01\x02\x82Epath:Lrootfilesin:Nrawrepoformats\x82LgeneraldeltaHrevlogv1 | |
444 |
|
|
458 | s> \r\n | |
445 |
received frame(size=1 |
|
459 | received frame(size=1264; request=1; stream=2; streamflags=; type=command-response; flags=continuation) | |
446 |
|
|
460 | s> 8\r\n | |
447 | s> \x00\x00\x00\x01\x00\x02\x002 |
|
461 | s> \x00\x00\x00\x01\x00\x02\x002 | |
448 |
|
|
462 | s> \r\n | |
@@ -469,7 +483,13 b' capabilities command returns expected in' | |||||
469 | b'fields': { |
|
483 | b'fields': { | |
470 | b'default': set([]), |
|
484 | b'default': set([]), | |
471 | b'required': False, |
|
485 | b'required': False, | |
472 | b'type': b'set' |
|
486 | b'type': b'set', | |
|
487 | b'validvalues': set([ | |||
|
488 | b'bookmarks', | |||
|
489 | b'parents', | |||
|
490 | b'phase', | |||
|
491 | b'revision' | |||
|
492 | ]) | |||
473 | }, |
|
493 | }, | |
474 | b'noderange': { |
|
494 | b'noderange': { | |
475 | b'default': None, |
|
495 | b'default': None, | |
@@ -491,7 +511,11 b' capabilities command returns expected in' | |||||
491 | b'fields': { |
|
511 | b'fields': { | |
492 | b'default': set([]), |
|
512 | b'default': set([]), | |
493 | b'required': False, |
|
513 | b'required': False, | |
494 | b'type': b'set' |
|
514 | b'type': b'set', | |
|
515 | b'validvalues': set([ | |||
|
516 | b'parents', | |||
|
517 | b'revision' | |||
|
518 | ]) | |||
495 | }, |
|
519 | }, | |
496 | b'haveparents': { |
|
520 | b'haveparents': { | |
497 | b'default': False, |
|
521 | b'default': False, | |
@@ -562,7 +586,11 b' capabilities command returns expected in' | |||||
562 | b'fields': { |
|
586 | b'fields': { | |
563 | b'default': set([]), |
|
587 | b'default': set([]), | |
564 | b'required': False, |
|
588 | b'required': False, | |
565 | b'type': b'set' |
|
589 | b'type': b'set', | |
|
590 | b'validvalues': set([ | |||
|
591 | b'parents', | |||
|
592 | b'revision' | |||
|
593 | ]) | |||
566 | }, |
|
594 | }, | |
567 | b'haveparents': { |
|
595 | b'haveparents': { | |
568 | b'default': False, |
|
596 | b'default': False, |
General Comments 0
You need to be logged in to leave comments.
Login now