Mercurial > public > mercurial-scm > hg
comparison mercurial/context.py @ 18084:ee3b5fb648c7
clfilter: ensure context raise RepoLookupError when the revision is filtered
Currently the code path of `changectx(filteredrepo, rev)` call
`filteredrepo.changelog.node(rev)`. When `rev` is filtered this raise an
unhandled `IndexError`. This case now raise a `RepoLookupError` as other
error case do.
author | Pierre-Yves David <pierre-yves.david@ens-lyon.org> |
---|---|
date | Mon, 17 Dec 2012 18:09:41 +0100 |
parents | 03604f46d48a |
children | dc526561111c |
comparison
equal
deleted
inserted
replaced
18083:717c692fa449 | 18084:ee3b5fb648c7 |
---|---|
23 if changeid == '': | 23 if changeid == '': |
24 changeid = '.' | 24 changeid = '.' |
25 self._repo = repo | 25 self._repo = repo |
26 | 26 |
27 if isinstance(changeid, int): | 27 if isinstance(changeid, int): |
28 try: | |
29 self._node = repo.changelog.node(changeid) | |
30 except IndexError: | |
31 raise error.RepoLookupError( | |
32 _("unknown revision '%s'") % changeid) | |
28 self._rev = changeid | 33 self._rev = changeid |
29 self._node = repo.changelog.node(changeid) | |
30 return | 34 return |
31 if isinstance(changeid, long): | 35 if isinstance(changeid, long): |
32 changeid = str(changeid) | 36 changeid = str(changeid) |
33 if changeid == '.': | 37 if changeid == '.': |
34 self._node = repo.dirstate.p1() | 38 self._node = repo.dirstate.p1() |