Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/context.py @ 23017:dc25ed84bee8
changectx: issue a FilteredRepoLookupError when applicable
We capture FilteredxxxError and issue a FilteredRepoLookupError instead with a
sightly different messsge. The message will likely get more improvement in the
future.
error: filtered revision '4'
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Wed, 15 Oct 2014 20:37:44 -0700 |
parents | b50ed6b9b513 |
children | a4dd270a419c |
comparison
equal
deleted
inserted
replaced
23016:2bd51e61c65e | 23017:dc25ed84bee8 |
---|---|
398 if len(changeid) == 20: | 398 if len(changeid) == 20: |
399 try: | 399 try: |
400 self._node = changeid | 400 self._node = changeid |
401 self._rev = repo.changelog.rev(changeid) | 401 self._rev = repo.changelog.rev(changeid) |
402 return | 402 return |
403 except error.FilteredRepoLookupError: | |
404 raise | |
403 except LookupError: | 405 except LookupError: |
404 pass | 406 pass |
405 | 407 |
406 try: | 408 try: |
407 r = int(changeid) | 409 r = int(changeid) |
413 if r < 0 or r >= l: | 415 if r < 0 or r >= l: |
414 raise ValueError | 416 raise ValueError |
415 self._rev = r | 417 self._rev = r |
416 self._node = repo.changelog.node(r) | 418 self._node = repo.changelog.node(r) |
417 return | 419 return |
420 except error.FilteredIndexError: | |
421 raise | |
418 except (ValueError, OverflowError, IndexError): | 422 except (ValueError, OverflowError, IndexError): |
419 pass | 423 pass |
420 | 424 |
421 if len(changeid) == 40: | 425 if len(changeid) == 40: |
422 try: | 426 try: |
423 self._node = bin(changeid) | 427 self._node = bin(changeid) |
424 self._rev = repo.changelog.rev(self._node) | 428 self._rev = repo.changelog.rev(self._node) |
425 return | 429 return |
430 except error.FilteredLookupError: | |
431 raise | |
426 except (TypeError, LookupError): | 432 except (TypeError, LookupError): |
427 pass | 433 pass |
428 | 434 |
429 if changeid in repo._bookmarks: | 435 if changeid in repo._bookmarks: |
430 self._node = repo._bookmarks[changeid] | 436 self._node = repo._bookmarks[changeid] |
436 return | 442 return |
437 try: | 443 try: |
438 self._node = repo.branchtip(changeid) | 444 self._node = repo.branchtip(changeid) |
439 self._rev = repo.changelog.rev(self._node) | 445 self._rev = repo.changelog.rev(self._node) |
440 return | 446 return |
447 except error.FilteredRepoLookupError: | |
448 raise | |
441 except error.RepoLookupError: | 449 except error.RepoLookupError: |
442 pass | 450 pass |
443 | 451 |
444 self._node = repo.changelog._partialmatch(changeid) | 452 self._node = repo.unfiltered().changelog._partialmatch(changeid) |
445 if self._node is not None: | 453 if self._node is not None: |
446 self._rev = repo.changelog.rev(self._node) | 454 self._rev = repo.changelog.rev(self._node) |
447 return | 455 return |
448 | 456 |
449 # lookup failed | 457 # lookup failed |
457 try: | 465 try: |
458 if len(changeid) == 20: | 466 if len(changeid) == 20: |
459 changeid = hex(changeid) | 467 changeid = hex(changeid) |
460 except TypeError: | 468 except TypeError: |
461 pass | 469 pass |
470 except (error.FilteredIndexError, error.FilteredLookupError, | |
471 error.FilteredRepoLookupError): | |
472 raise error.FilteredRepoLookupError(_("filtered revision '%s'") | |
473 % changeid) | |
462 except IndexError: | 474 except IndexError: |
463 pass | 475 pass |
464 raise error.RepoLookupError( | 476 raise error.RepoLookupError( |
465 _("unknown revision '%s'") % changeid) | 477 _("unknown revision '%s'") % changeid) |
466 | 478 |