diff --git a/mercurial/testing/storage.py b/mercurial/testing/storage.py --- a/mercurial/testing/storage.py +++ b/mercurial/testing/storage.py @@ -199,13 +199,13 @@ with self.assertRaises(error.LookupError): f.lookup(hex(node)[0:12]) - with self.assertRaises(IndexError): + with self.assertRaises(error.LookupError): f.lookup(-2) with self.assertRaises(error.LookupError): f.lookup(b'-2') - with self.assertRaises(IndexError): + with self.assertRaises(error.LookupError): f.lookup(1) with self.assertRaises(error.LookupError): diff --git a/mercurial/utils/storageutil.py b/mercurial/utils/storageutil.py --- a/mercurial/utils/storageutil.py +++ b/mercurial/utils/storageutil.py @@ -121,7 +121,10 @@ Raises ``error.LookupError`` on failure. """ if isinstance(fileid, int): - return store.node(fileid) + try: + return store.node(fileid) + except IndexError: + raise error.LookupError(fileid, identifier, _('no match found')) if len(fileid) == 20: try: