Mercurial > hg
comparison tests/test-wireproto-command-capabilities.t @ 39813:c30faea8d02d
wireprotov2: advertise set of valid values for requestable fields
changesetdata, manifestdata, and filedata all allow the caller to
specify what data fields to request.
Data fields are extensible and may evolve over time. In order to
prevent clients from making requests for fields that are not
available, the client needs to know what fields are available.
This commit teaches the server to declare a set of "valid values"
for wire protocol command arguments. That set of values is exposed
in the command's capabilities descriptor. The changesetdata,
manifestdata, and filedata commands all declare their set of
available "fields."
Differential Revision: https://phab.mercurial-scm.org/D4619
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Mon, 17 Sep 2018 11:54:00 -0700 |
parents | 8e7e822e85ec |
children | d059cb669632 |
comparison
equal
deleted
inserted
replaced
39812:8e7e822e85ec | 39813:c30faea8d02d |
---|---|
210 s> Server: testing stub value\r\n | 210 s> Server: testing stub value\r\n |
211 s> Date: $HTTP_DATE$\r\n | 211 s> Date: $HTTP_DATE$\r\n |
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\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\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 | 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': { |
219 b'exp-http-v2-0001': { | 219 b'exp-http-v2-0001': { |
220 b'commands': { | 220 b'commands': { |
233 b'changesetdata': { | 233 b'changesetdata': { |
234 b'args': { | 234 b'args': { |
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, |
242 b'required': False, | 248 b'required': False, |
243 b'type': b'list' | 249 b'type': b'list' |
255 b'filedata': { | 261 b'filedata': { |
256 b'args': { | 262 b'args': { |
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, |
264 b'required': False, | 274 b'required': False, |
265 b'type': b'bool' | 275 b'type': b'bool' |
326 b'manifestdata': { | 336 b'manifestdata': { |
327 b'args': { | 337 b'args': { |
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, |
335 b'required': False, | 349 b'required': False, |
336 b'type': b'bool' | 350 b'type': b'bool' |
413 s> Server: testing stub value\r\n | 427 s> Server: testing stub value\r\n |
414 s> Date: $HTTP_DATE$\r\n | 428 s> Date: $HTTP_DATE$\r\n |
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\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\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 | 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 |
422 s> accept: application/mercurial-exp-framing-0005\r\n | 436 s> accept: application/mercurial-exp-framing-0005\r\n |
423 s> content-type: application/mercurial-exp-framing-0005\r\n | 437 s> content-type: application/mercurial-exp-framing-0005\r\n |
436 s> 13\r\n | 450 s> 13\r\n |
437 s> \x0b\x00\x00\x01\x00\x02\x011 | 451 s> \x0b\x00\x00\x01\x00\x02\x011 |
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> 485\r\n | 455 s> 4f8\r\n |
442 s> }\x04\x00\x01\x00\x02\x001 | 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 s> \r\n | 458 s> \r\n |
445 received frame(size=1149; request=1; stream=2; streamflags=; type=command-response; flags=continuation) | 459 received frame(size=1264; request=1; stream=2; streamflags=; type=command-response; flags=continuation) |
446 s> 8\r\n | 460 s> 8\r\n |
447 s> \x00\x00\x00\x01\x00\x02\x002 | 461 s> \x00\x00\x00\x01\x00\x02\x002 |
448 s> \r\n | 462 s> \r\n |
449 s> 0\r\n | 463 s> 0\r\n |
450 s> \r\n | 464 s> \r\n |
467 b'changesetdata': { | 481 b'changesetdata': { |
468 b'args': { | 482 b'args': { |
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, |
476 b'required': False, | 496 b'required': False, |
477 b'type': b'list' | 497 b'type': b'list' |
489 b'filedata': { | 509 b'filedata': { |
490 b'args': { | 510 b'args': { |
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, |
498 b'required': False, | 522 b'required': False, |
499 b'type': b'bool' | 523 b'type': b'bool' |
560 b'manifestdata': { | 584 b'manifestdata': { |
561 b'args': { | 585 b'args': { |
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, |
569 b'required': False, | 597 b'required': False, |
570 b'type': b'bool' | 598 b'type': b'bool' |