mercurial/context.py
changeset 3712 1bd70d40ec57
parent 3673 eb0b4a2d70a9
child 3715 6cb3aca69cdc
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):