Mercurial > hg
changeset 3930:01d98d68d697
Add revlog.LookupError exception, and use it instead of RevlogError.
Remove repo.LookupError, which devolves to the revlog version.
author | Brendan Cully <brendan@kublai.com> |
---|---|
date | Mon, 18 Dec 2006 12:22:43 -0800 |
parents | 33988aaa1652 |
children | f2cbcf1e98b2 |
files | mercurial/bundlerepo.py mercurial/commands.py mercurial/context.py mercurial/localrepo.py mercurial/repo.py mercurial/revlog.py |
diffstat | 6 files changed, 19 insertions(+), 23 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/bundlerepo.py Sun Dec 17 22:16:57 2006 -0600 +++ b/mercurial/bundlerepo.py Mon Dec 18 12:22:43 2006 -0800 @@ -49,7 +49,7 @@ continue for p in (p1, p2): if not p in self.nodemap: - raise revlog.RevlogError(_("unknown parent %s") % short(p1)) + raise revlog.LookupError(_("unknown parent %s") % short(p1)) if linkmapper is None: link = n else:
--- a/mercurial/commands.py Sun Dec 17 22:16:57 2006 -0600 +++ b/mercurial/commands.py Mon Dec 18 12:22:43 2006 -0800 @@ -2450,9 +2450,10 @@ hexfunc = ui.debugflag and hex or short for t, n in l: try: + hn = hexfunc(n) r = "%5d:%s" % (repo.changelog.rev(n), hexfunc(n)) - except KeyError: - r = " ?:?" + except revlog.LookupError: + r = " ?:%s" % hn if ui.quiet: ui.write("%s\n" % t) else:
--- a/mercurial/context.py Sun Dec 17 22:16:57 2006 -0600 +++ b/mercurial/context.py Mon Dec 18 12:22:43 2006 -0800 @@ -83,13 +83,13 @@ try: return self._manifest[path] except KeyError: - raise repo.LookupError(_("'%s' not found in manifest") % path) + raise revlog.LookupError(_("'%s' not found in manifest") % path) if '_manifestdelta' in self.__dict__ or path in self.files(): if path in self._manifestdelta: return self._manifestdelta[path] node, flag = self._repo.manifest.find(self._changeset[0], path) if not node: - raise repo.LookupError(_("'%s' not found in manifest") % path) + raise revlog.LookupError(_("'%s' not found in manifest") % path) return node @@ -149,13 +149,10 @@ self._changeid = self._filelog.linkrev(self._filenode) return self._changeid elif name == '_filenode': - try: - if '_fileid' in self.__dict__: - self._filenode = self._filelog.lookup(self._fileid) - else: - self._filenode = self._changectx.filenode(self._path) - except revlog.RevlogError, inst: - raise repo.LookupError(str(inst)) + if '_fileid' in self.__dict__: + self._filenode = self._filelog.lookup(self._fileid) + else: + self._filenode = self._changectx.filenode(self._path) return self._filenode elif name == '_filerev': self._filerev = self._filelog.rev(self._filenode) @@ -167,7 +164,7 @@ try: n = self._filenode return True - except repo.LookupError: + except revlog.LookupError: # file is missing return False
--- a/mercurial/localrepo.py Sun Dec 17 22:16:57 2006 -0600 +++ b/mercurial/localrepo.py Mon Dec 18 12:22:43 2006 -0800 @@ -317,7 +317,7 @@ rev = c.rev() try: fnode = c.filenode('.hgtags') - except repo.LookupError: + except revlog.LookupError: continue ret.append((rev, node, fnode)) if fnode in last:
--- a/mercurial/repo.py Sun Dec 17 22:16:57 2006 -0600 +++ b/mercurial/repo.py Mon Dec 18 12:22:43 2006 -0800 @@ -9,9 +9,6 @@ class RepoError(Exception): pass -class LookupError(RepoError): - pass - class repository(object): def capable(self, name): '''tell whether repo supports named capability.
--- a/mercurial/revlog.py Sun Dec 17 22:16:57 2006 -0600 +++ b/mercurial/revlog.py Mon Dec 18 12:22:43 2006 -0800 @@ -281,6 +281,7 @@ del self.p.map[key] class RevlogError(Exception): pass +class LookupError(RevlogError): pass class revlog(object): """ @@ -471,7 +472,7 @@ try: return self.nodemap[node] except KeyError: - raise RevlogError(_('%s: no node %s') % (self.indexfile, hex(node))) + raise LookupError(_('%s: no node %s') % (self.indexfile, hex(node))) def linkrev(self, node): return (node == nullid) and nullrev or self.index[self.rev(node)][-4] def parents(self, node): @@ -766,7 +767,7 @@ node = id r = self.rev(node) # quick search the index return node - except RevlogError: + except LookupError: pass # may be partial hex id try: # str(rev) @@ -795,7 +796,7 @@ for n in self.nodemap: if n.startswith(bin_id) and hex(n).startswith(id): if node is not None: - raise RevlogError(_("Ambiguous identifier")) + raise LookupError(_("Ambiguous identifier")) node = n if node is not None: return node @@ -815,7 +816,7 @@ if n: return n - raise RevlogError(_("No match found")) + raise LookupError(_("No match found")) def cmp(self, node, text): """compare text with a given file revision""" @@ -1155,13 +1156,13 @@ for p in (p1, p2): if not p in self.nodemap: - raise RevlogError(_("unknown parent %s") % short(p)) + raise LookupError(_("unknown parent %s") % short(p)) if not chain: # retrieve the parent revision of the delta chain chain = p1 if not chain in self.nodemap: - raise RevlogError(_("unknown base %s") % short(chain[:4])) + raise LookupError(_("unknown base %s") % short(chain[:4])) # full versions are inserted when the needed deltas become # comparable to the uncompressed text or when the previous