Mercurial > public > mercurial-scm > hg-stable
diff mercurial/context.py @ 37797:43221a57e22f stable
context: translate FilteredIndex/LookupError at repo[changeid] (API)
This partially backs out ecd3f6909184. It seems layering violation for
repo[changeid] to raise storage-level exceptions transparently. Otherwise,
we would have to rewrite callers to catch all of them.
try:
repo[rev_or_node]
except (error.RepoLookupError, error.FilteredIndexError,
error.FilteredLookupError):
pass
This would also fix filectx._changectx(), which catches FilteredRepoLookupError
to fall back to the unfiltered path.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Thu, 19 Apr 2018 19:55:51 +0900 |
parents | 6e137da59ad9 |
children | 8b86acc7aa64 |
line wrap: on
line diff
--- a/mercurial/context.py Thu Apr 19 20:22:33 2018 +0900 +++ b/mercurial/context.py Thu Apr 19 19:55:51 2018 +0900 @@ -497,8 +497,10 @@ changeid = hex(changeid) except TypeError: pass - except (error.FilteredIndexError, error.FilteredLookupError, - error.FilteredRepoLookupError): + except (error.FilteredIndexError, error.FilteredLookupError): + raise error.FilteredRepoLookupError(_("filtered revision '%s'") + % changeid) + except error.FilteredRepoLookupError: raise except IndexError: pass