149 elif name == '_filenode': |
149 elif name == '_filenode': |
150 try: |
150 try: |
151 if '_fileid' in self.__dict__: |
151 if '_fileid' in self.__dict__: |
152 self._filenode = self._filelog.lookup(self._fileid) |
152 self._filenode = self._filelog.lookup(self._fileid) |
153 else: |
153 else: |
154 try: |
154 self._filenode = self._changectx.filenode(self._path) |
155 self._filenode = self._changectx.filenode(self._path) |
|
156 except: |
|
157 self._filenode = self._filerev = None |
|
158 except revlog.RevlogError, inst: |
155 except revlog.RevlogError, inst: |
159 raise repo.LookupError(str(inst)) |
156 raise repo.LookupError(str(inst)) |
160 return self._filenode |
157 return self._filenode |
161 elif name == '_filerev': |
158 elif name == '_filerev': |
162 self._filerev = self._filelog.rev(self._filenode) |
159 self._filerev = self._filelog.rev(self._filenode) |
163 return self._filerev |
160 return self._filerev |
164 else: |
161 else: |
165 raise AttributeError, name |
162 raise AttributeError, name |
166 |
163 |
167 def __nonzero__(self): |
164 def __nonzero__(self): |
168 return self._filenode != None |
165 try: |
|
166 n = self._filenode |
|
167 return True |
|
168 except repo.LookupError: |
|
169 # file is missing |
|
170 return False |
169 |
171 |
170 def __str__(self): |
172 def __str__(self): |
171 return "%s@%s" % (self.path(), short(self.node())) |
173 return "%s@%s" % (self.path(), short(self.node())) |
172 |
174 |
173 def __repr__(self): |
175 def __repr__(self): |