comparison mercurial/context.py @ 3712:1bd70d40ec57

context: None is not a valid filenode (revert from 23ede9e7ad4d)
author Benoit Boissinot <benoit.boissinot@ens-lyon.org>
date Mon, 27 Nov 2006 20:55:50 +0100
parents eb0b4a2d70a9
children 6cb3aca69cdc
comparison
equal deleted inserted replaced
3711:9ccc6be9ae4d 3712:1bd70d40ec57
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):