Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/context.py @ 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 | 6b4127c7d52a |
children | a4edadd807dd |
comparison
equal
deleted
inserted
replaced
3929:33988aaa1652 | 3930:01d98d68d697 |
---|---|
81 def filenode(self, path): | 81 def filenode(self, path): |
82 if '_manifest' in self.__dict__: | 82 if '_manifest' in self.__dict__: |
83 try: | 83 try: |
84 return self._manifest[path] | 84 return self._manifest[path] |
85 except KeyError: | 85 except KeyError: |
86 raise repo.LookupError(_("'%s' not found in manifest") % path) | 86 raise revlog.LookupError(_("'%s' not found in manifest") % path) |
87 if '_manifestdelta' in self.__dict__ or path in self.files(): | 87 if '_manifestdelta' in self.__dict__ or path in self.files(): |
88 if path in self._manifestdelta: | 88 if path in self._manifestdelta: |
89 return self._manifestdelta[path] | 89 return self._manifestdelta[path] |
90 node, flag = self._repo.manifest.find(self._changeset[0], path) | 90 node, flag = self._repo.manifest.find(self._changeset[0], path) |
91 if not node: | 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 return node | 94 return node |
95 | 95 |
96 def filectx(self, path, fileid=None): | 96 def filectx(self, path, fileid=None): |
97 """get a file context from this changeset""" | 97 """get a file context from this changeset""" |
147 return self._filelog | 147 return self._filelog |
148 elif name == '_changeid': | 148 elif name == '_changeid': |
149 self._changeid = self._filelog.linkrev(self._filenode) | 149 self._changeid = self._filelog.linkrev(self._filenode) |
150 return self._changeid | 150 return self._changeid |
151 elif name == '_filenode': | 151 elif name == '_filenode': |
152 try: | 152 if '_fileid' in self.__dict__: |
153 if '_fileid' in self.__dict__: | 153 self._filenode = self._filelog.lookup(self._fileid) |
154 self._filenode = self._filelog.lookup(self._fileid) | 154 else: |
155 else: | 155 self._filenode = self._changectx.filenode(self._path) |
156 self._filenode = self._changectx.filenode(self._path) | |
157 except revlog.RevlogError, inst: | |
158 raise repo.LookupError(str(inst)) | |
159 return self._filenode | 156 return self._filenode |
160 elif name == '_filerev': | 157 elif name == '_filerev': |
161 self._filerev = self._filelog.rev(self._filenode) | 158 self._filerev = self._filelog.rev(self._filenode) |
162 return self._filerev | 159 return self._filerev |
163 else: | 160 else: |
165 | 162 |
166 def __nonzero__(self): | 163 def __nonzero__(self): |
167 try: | 164 try: |
168 n = self._filenode | 165 n = self._filenode |
169 return True | 166 return True |
170 except repo.LookupError: | 167 except revlog.LookupError: |
171 # file is missing | 168 # file is missing |
172 return False | 169 return False |
173 | 170 |
174 def __str__(self): | 171 def __str__(self): |
175 return "%s@%s" % (self.path(), short(self.node())) | 172 return "%s@%s" % (self.path(), short(self.node())) |