Show More
@@ -460,48 +460,55 b' def _processchangegroup(op, cg, tr, sour' | |||
|
460 | 460 | }) |
|
461 | 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 | 503 | def _processpart(op, part): |
|
464 | 504 | """process a single part from a bundle |
|
465 | 505 | |
|
466 | 506 | The part is guaranteed to have been fully consumed when the function exits |
|
467 | 507 | (even if an exception is raised).""" |
|
468 | status = 'unknown' # used by debug output | |
|
469 | 508 | try: |
|
470 | try: | |
|
471 | handler = parthandlermapping.get(part.type) | |
|
472 | if handler is None: | |
|
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)) | |
|
509 | handler = _gethandler(op, part) | |
|
510 | if handler is None: | |
|
511 | return | |
|
505 | 512 | |
|
506 | 513 | # handler is called outside the above try block so that we don't |
|
507 | 514 | # risk catching KeyErrors from anything other than the |
General Comments 0
You need to be logged in to leave comments.
Login now