Show More
@@ -460,48 +460,55 b' def _processchangegroup(op, cg, tr, sour' | |||||
460 | }) |
|
460 | }) | |
461 | return ret |
|
461 | return ret | |
462 |
|
462 | |||
|
463 | def _gethandler(op, part): | |||
|
464 | status = 'unknown' # used by debug output | |||
|
465 | try: | |||
|
466 | handler = parthandlermapping.get(part.type) | |||
|
467 | if handler is None: | |||
|
468 | status = 'unsupported-type' | |||
|
469 | raise error.BundleUnknownFeatureError(parttype=part.type) | |||
|
470 | indebug(op.ui, 'found a handler for part %r' % part.type) | |||
|
471 | unknownparams = part.mandatorykeys - handler.params | |||
|
472 | if unknownparams: | |||
|
473 | unknownparams = list(unknownparams) | |||
|
474 | unknownparams.sort() | |||
|
475 | status = 'unsupported-params (%s)' % unknownparams | |||
|
476 | raise error.BundleUnknownFeatureError(parttype=part.type, | |||
|
477 | params=unknownparams) | |||
|
478 | status = 'supported' | |||
|
479 | except error.BundleUnknownFeatureError as exc: | |||
|
480 | if part.mandatory: # mandatory parts | |||
|
481 | raise | |||
|
482 | indebug(op.ui, 'ignoring unsupported advisory part %s' % exc) | |||
|
483 | return # skip to part processing | |||
|
484 | finally: | |||
|
485 | if op.ui.debugflag: | |||
|
486 | msg = ['bundle2-input-part: "%s"' % part.type] | |||
|
487 | if not part.mandatory: | |||
|
488 | msg.append(' (advisory)') | |||
|
489 | nbmp = len(part.mandatorykeys) | |||
|
490 | nbap = len(part.params) - nbmp | |||
|
491 | if nbmp or nbap: | |||
|
492 | msg.append(' (params:') | |||
|
493 | if nbmp: | |||
|
494 | msg.append(' %i mandatory' % nbmp) | |||
|
495 | if nbap: | |||
|
496 | msg.append(' %i advisory' % nbmp) | |||
|
497 | msg.append(')') | |||
|
498 | msg.append(' %s\n' % status) | |||
|
499 | op.ui.debug(''.join(msg)) | |||
|
500 | ||||
|
501 | return handler | |||
|
502 | ||||
463 | def _processpart(op, part): |
|
503 | def _processpart(op, part): | |
464 | """process a single part from a bundle |
|
504 | """process a single part from a bundle | |
465 |
|
505 | |||
466 | The part is guaranteed to have been fully consumed when the function exits |
|
506 | The part is guaranteed to have been fully consumed when the function exits | |
467 | (even if an exception is raised).""" |
|
507 | (even if an exception is raised).""" | |
468 | status = 'unknown' # used by debug output |
|
|||
469 | try: |
|
508 | try: | |
470 | try: |
|
509 | handler = _gethandler(op, part) | |
471 | handler = parthandlermapping.get(part.type) |
|
510 | if handler is None: | |
472 | if handler is None: |
|
511 | return | |
473 | status = 'unsupported-type' |
|
|||
474 | raise error.BundleUnknownFeatureError(parttype=part.type) |
|
|||
475 | indebug(op.ui, 'found a handler for part %r' % part.type) |
|
|||
476 | unknownparams = part.mandatorykeys - handler.params |
|
|||
477 | if unknownparams: |
|
|||
478 | unknownparams = list(unknownparams) |
|
|||
479 | unknownparams.sort() |
|
|||
480 | status = 'unsupported-params (%s)' % unknownparams |
|
|||
481 | raise error.BundleUnknownFeatureError(parttype=part.type, |
|
|||
482 | params=unknownparams) |
|
|||
483 | status = 'supported' |
|
|||
484 | except error.BundleUnknownFeatureError as exc: |
|
|||
485 | if part.mandatory: # mandatory parts |
|
|||
486 | raise |
|
|||
487 | indebug(op.ui, 'ignoring unsupported advisory part %s' % exc) |
|
|||
488 | return # skip to part processing |
|
|||
489 | finally: |
|
|||
490 | if op.ui.debugflag: |
|
|||
491 | msg = ['bundle2-input-part: "%s"' % part.type] |
|
|||
492 | if not part.mandatory: |
|
|||
493 | msg.append(' (advisory)') |
|
|||
494 | nbmp = len(part.mandatorykeys) |
|
|||
495 | nbap = len(part.params) - nbmp |
|
|||
496 | if nbmp or nbap: |
|
|||
497 | msg.append(' (params:') |
|
|||
498 | if nbmp: |
|
|||
499 | msg.append(' %i mandatory' % nbmp) |
|
|||
500 | if nbap: |
|
|||
501 | msg.append(' %i advisory' % nbmp) |
|
|||
502 | msg.append(')') |
|
|||
503 | msg.append(' %s\n' % status) |
|
|||
504 | op.ui.debug(''.join(msg)) |
|
|||
505 |
|
512 | |||
506 | # handler is called outside the above try block so that we don't |
|
513 | # handler is called outside the above try block so that we don't | |
507 | # risk catching KeyErrors from anything other than the |
|
514 | # risk catching KeyErrors from anything other than the |
General Comments 0
You need to be logged in to leave comments.
Login now