[PATCH STABLE] convert: handle LookupError in mercurial_source.lookuprev()
Yuya Nishihara
yuya at tcha.org
Mon Jan 19 05:14:23 CST 2015
On Sun, 18 Jan 2015 22:38:50 -0500, Matt Harbison wrote:
> # HG changeset patch
> # User Matt Harbison <matt_harbison at yahoo.com>
> # Date 1421637713 18000
> # Sun Jan 18 22:21:53 2015 -0500
> # Branch stable
> # Node ID fc03807767639e86d7b3b82b9857f8922e2c6d8f
> # Parent 74f3ae15cb0e5554633d82ed95262688a7cc774f
> convert: handle LookupError in mercurial_source.lookuprev()
>
> This is in line with the documentation on the base class method, and is related
> to issue4496 (but doesn't fix the reporter's problem of not mangling other data
> that matches a revision pattern). Now instead of aborting when there is an
> ambiguous source rev, it simply won't update the commit comment. A warning
> message might be nice, but a None return masks whether the problem was no
> matching revision, or more than one.
>
> The only other caller of this is the logic that converts tags, but those are
> never ambiguous since they are always 40 characters.
>
> A test isn't feasible because there simply aren't enough commits in the test
> suite repos to have an ambiguous identifier that is at least 6 characters long,
> and it would be too easy for the ambiguity to disappear when unrelated changes
> are made. Instead, I simply ran 'hg --traceback log -r c' on the hg repo, and
> handled the error it threw.
>
> diff --git a/hgext/convert/hg.py b/hgext/convert/hg.py
> --- a/hgext/convert/hg.py
> +++ b/hgext/convert/hg.py
> @@ -467,7 +467,7 @@
> def lookuprev(self, rev):
> try:
> return hex(self.repo.lookup(rev))
> - except error.RepoError:
> + except error.RepoError, error.LookupError:
It should be (error.RepoError, error.LookupError).
More information about the Mercurial-devel
mailing list