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: |