Mercurial > public > mercurial-scm > hg
comparison mercurial/revlog.py @ 86:1b945e8ba67b
Friendlier exceptions for unknown node errors
author | mpm@selenic.com |
---|---|
date | Tue, 17 May 2005 12:20:29 -0800 |
parents | b2e3528115da |
children | 7daef883134f |
comparison
equal
deleted
inserted
replaced
85:58a1a0425c9b | 86:1b945e8ba67b |
---|---|
76 class lazymap: | 76 class lazymap: |
77 def __init__(self, parser): | 77 def __init__(self, parser): |
78 self.p = parser | 78 self.p = parser |
79 def load(self, key): | 79 def load(self, key): |
80 n = self.p.data.find(key) | 80 n = self.p.data.find(key) |
81 if n < 0: raise KeyError(key) | 81 if n < 0: raise KeyError("node " + hex(key)) |
82 pos = n / self.p.s | 82 pos = n / self.p.s |
83 self.p.load(pos) | 83 self.p.load(pos) |
84 def __contains__(self, key): | 84 def __contains__(self, key): |
85 try: | 85 try: |
86 self[key] | 86 self[key] |
89 return False | 89 return False |
90 def __getitem__(self, key): | 90 def __getitem__(self, key): |
91 try: | 91 try: |
92 return self.p.map[key] | 92 return self.p.map[key] |
93 except KeyError: | 93 except KeyError: |
94 self.load(key) | 94 try: |
95 return self.p.map[key] | 95 self.load(key) |
96 return self.p.map[key] | |
97 except KeyError: | |
98 raise KeyError("node " + hex(key)) | |
96 def __setitem__(self, key, val): | 99 def __setitem__(self, key, val): |
97 self.p.map[key] = val | 100 self.p.map[key] = val |
98 | 101 |
99 class revlog: | 102 class revlog: |
100 def __init__(self, opener, indexfile, datafile): | 103 def __init__(self, opener, indexfile, datafile): |