equal
deleted
inserted
replaced
109 def __init__(self, parser): |
109 def __init__(self, parser): |
110 self.p = parser |
110 self.p = parser |
111 def load(self, key): |
111 def load(self, key): |
112 if self.p.all: return |
112 if self.p.all: return |
113 n = self.p.data.find(key) |
113 n = self.p.data.find(key) |
114 if n < 0: raise KeyError("node " + hex(key)) |
114 if n < 0: |
|
115 raise KeyError(key) |
115 pos = n / self.p.s |
116 pos = n / self.p.s |
116 self.p.load(pos) |
117 self.p.load(pos) |
117 def __contains__(self, key): |
118 def __contains__(self, key): |
118 self.p.load() |
119 self.p.load() |
119 return key in self.p.map |
120 return key in self.p.map |
208 def node(self, rev): return (rev < 0) and nullid or self.index[rev][6] |
209 def node(self, rev): return (rev < 0) and nullid or self.index[rev][6] |
209 def rev(self, node): |
210 def rev(self, node): |
210 try: |
211 try: |
211 return self.nodemap[node] |
212 return self.nodemap[node] |
212 except KeyError: |
213 except KeyError: |
213 raise KeyError('%s: no node %s' % (self.indexfile, hex(node))) |
214 raise RevlogError('%s: no node %s' % (self.indexfile, hex(node))) |
214 def linkrev(self, node): return self.index[self.rev(node)][3] |
215 def linkrev(self, node): return self.index[self.rev(node)][3] |
215 def parents(self, node): |
216 def parents(self, node): |
216 if node == nullid: return (nullid, nullid) |
217 if node == nullid: return (nullid, nullid) |
217 return self.index[self.rev(node)][4:6] |
218 return self.index[self.rev(node)][4:6] |
218 |
219 |
288 except (ValueError, OverflowError): |
289 except (ValueError, OverflowError): |
289 c = [] |
290 c = [] |
290 for n in self.nodemap: |
291 for n in self.nodemap: |
291 if hex(n).startswith(id): |
292 if hex(n).startswith(id): |
292 c.append(n) |
293 c.append(n) |
293 if len(c) > 1: raise KeyError("Ambiguous identifier") |
294 if len(c) > 1: raise RevlogError("Ambiguous identifier") |
294 if len(c) < 1: raise KeyError("No match found") |
295 if len(c) < 1: raise RevlogError("No match found") |
295 return c[0] |
296 return c[0] |
296 |
297 |
297 return None |
298 return None |
298 |
299 |
299 def diff(self, a, b): |
300 def diff(self, a, b): |
351 last = last + s |
352 last = last + s |
352 |
353 |
353 text = mdiff.patches(text, bins) |
354 text = mdiff.patches(text, bins) |
354 |
355 |
355 if node != hash(text, p1, p2): |
356 if node != hash(text, p1, p2): |
356 raise IOError("integrity check failed on %s:%d" |
357 raise RevlogError("integrity check failed on %s:%d" |
357 % (self.datafile, rev)) |
358 % (self.datafile, rev)) |
358 |
359 |
359 self.cache = (node, rev, text) |
360 self.cache = (node, rev, text) |
360 return text |
361 return text |
361 |
362 |