##// END OF EJS Templates
Add revlog.LookupError exception, and use it instead of RevlogError....
Brendan Cully -
r3930:01d98d68 default
parent child Browse files
Show More
@@ -49,7 +49,7 b' class bundlerevlog(revlog.revlog):'
49 49 continue
50 50 for p in (p1, p2):
51 51 if not p in self.nodemap:
52 raise revlog.RevlogError(_("unknown parent %s") % short(p1))
52 raise revlog.LookupError(_("unknown parent %s") % short(p1))
53 53 if linkmapper is None:
54 54 link = n
55 55 else:
@@ -2450,9 +2450,10 b' def tags(ui, repo):'
2450 2450 hexfunc = ui.debugflag and hex or short
2451 2451 for t, n in l:
2452 2452 try:
2453 hn = hexfunc(n)
2453 2454 r = "%5d:%s" % (repo.changelog.rev(n), hexfunc(n))
2454 except KeyError:
2455 r = " ?:?"
2455 except revlog.LookupError:
2456 r = " ?:%s" % hn
2456 2457 if ui.quiet:
2457 2458 ui.write("%s\n" % t)
2458 2459 else:
@@ -83,13 +83,13 b' class changectx(object):'
83 83 try:
84 84 return self._manifest[path]
85 85 except KeyError:
86 raise repo.LookupError(_("'%s' not found in manifest") % path)
86 raise revlog.LookupError(_("'%s' not found in manifest") % path)
87 87 if '_manifestdelta' in self.__dict__ or path in self.files():
88 88 if path in self._manifestdelta:
89 89 return self._manifestdelta[path]
90 90 node, flag = self._repo.manifest.find(self._changeset[0], path)
91 91 if not node:
92 raise repo.LookupError(_("'%s' not found in manifest") % path)
92 raise revlog.LookupError(_("'%s' not found in manifest") % path)
93 93
94 94 return node
95 95
@@ -149,13 +149,10 b' class filectx(object):'
149 149 self._changeid = self._filelog.linkrev(self._filenode)
150 150 return self._changeid
151 151 elif name == '_filenode':
152 try:
153 if '_fileid' in self.__dict__:
154 self._filenode = self._filelog.lookup(self._fileid)
155 else:
156 self._filenode = self._changectx.filenode(self._path)
157 except revlog.RevlogError, inst:
158 raise repo.LookupError(str(inst))
152 if '_fileid' in self.__dict__:
153 self._filenode = self._filelog.lookup(self._fileid)
154 else:
155 self._filenode = self._changectx.filenode(self._path)
159 156 return self._filenode
160 157 elif name == '_filerev':
161 158 self._filerev = self._filelog.rev(self._filenode)
@@ -167,7 +164,7 b' class filectx(object):'
167 164 try:
168 165 n = self._filenode
169 166 return True
170 except repo.LookupError:
167 except revlog.LookupError:
171 168 # file is missing
172 169 return False
173 170
@@ -317,7 +317,7 b' class localrepository(repo.repository):'
317 317 rev = c.rev()
318 318 try:
319 319 fnode = c.filenode('.hgtags')
320 except repo.LookupError:
320 except revlog.LookupError:
321 321 continue
322 322 ret.append((rev, node, fnode))
323 323 if fnode in last:
@@ -9,9 +9,6 b''
9 9 class RepoError(Exception):
10 10 pass
11 11
12 class LookupError(RepoError):
13 pass
14
15 12 class repository(object):
16 13 def capable(self, name):
17 14 '''tell whether repo supports named capability.
@@ -281,6 +281,7 b' class lazymap(object):'
281 281 del self.p.map[key]
282 282
283 283 class RevlogError(Exception): pass
284 class LookupError(RevlogError): pass
284 285
285 286 class revlog(object):
286 287 """
@@ -471,7 +472,7 b' class revlog(object):'
471 472 try:
472 473 return self.nodemap[node]
473 474 except KeyError:
474 raise RevlogError(_('%s: no node %s') % (self.indexfile, hex(node)))
475 raise LookupError(_('%s: no node %s') % (self.indexfile, hex(node)))
475 476 def linkrev(self, node):
476 477 return (node == nullid) and nullrev or self.index[self.rev(node)][-4]
477 478 def parents(self, node):
@@ -766,7 +767,7 b' class revlog(object):'
766 767 node = id
767 768 r = self.rev(node) # quick search the index
768 769 return node
769 except RevlogError:
770 except LookupError:
770 771 pass # may be partial hex id
771 772 try:
772 773 # str(rev)
@@ -795,7 +796,7 b' class revlog(object):'
795 796 for n in self.nodemap:
796 797 if n.startswith(bin_id) and hex(n).startswith(id):
797 798 if node is not None:
798 raise RevlogError(_("Ambiguous identifier"))
799 raise LookupError(_("Ambiguous identifier"))
799 800 node = n
800 801 if node is not None:
801 802 return node
@@ -815,7 +816,7 b' class revlog(object):'
815 816 if n:
816 817 return n
817 818
818 raise RevlogError(_("No match found"))
819 raise LookupError(_("No match found"))
819 820
820 821 def cmp(self, node, text):
821 822 """compare text with a given file revision"""
@@ -1155,13 +1156,13 b' class revlog(object):'
1155 1156
1156 1157 for p in (p1, p2):
1157 1158 if not p in self.nodemap:
1158 raise RevlogError(_("unknown parent %s") % short(p))
1159 raise LookupError(_("unknown parent %s") % short(p))
1159 1160
1160 1161 if not chain:
1161 1162 # retrieve the parent revision of the delta chain
1162 1163 chain = p1
1163 1164 if not chain in self.nodemap:
1164 raise RevlogError(_("unknown base %s") % short(chain[:4]))
1165 raise LookupError(_("unknown base %s") % short(chain[:4]))
1165 1166
1166 1167 # full versions are inserted when the needed deltas become
1167 1168 # comparable to the uncompressed text or when the previous
General Comments 0
You need to be logged in to leave comments. Login now