mercurial/context.py
changeset 3335 b02e60097bbe
parent 3334 e44eadc92ec4
child 3353 69fe021cc23e
equal deleted inserted replaced
3334:e44eadc92ec4 3335:b02e60097bbe
    46             self._changeset = self._repo.changelog.read(self.node())
    46             self._changeset = self._repo.changelog.read(self.node())
    47             return self._changeset
    47             return self._changeset
    48         elif name == '_manifest':
    48         elif name == '_manifest':
    49             self._manifest = self._repo.manifest.read(self._changeset[0])
    49             self._manifest = self._repo.manifest.read(self._changeset[0])
    50             return self._manifest
    50             return self._manifest
       
    51         elif name == '_manifestdelta':
       
    52             md = self._repo.manifest.readdelta(self._changeset[0])
       
    53             self._manifestdelta = md
       
    54             return self._manifestdelta
    51         else:
    55         else:
    52             raise AttributeError, name
    56             raise AttributeError, name
    53 
    57 
    54     def changeset(self): return self._changeset
    58     def changeset(self): return self._changeset
    55     def manifest(self): return self._manifest
    59     def manifest(self): return self._manifest
    75         if '_manifest' in self.__dict__:
    79         if '_manifest' in self.__dict__:
    76             try:
    80             try:
    77                 return self._manifest[path]
    81                 return self._manifest[path]
    78             except KeyError:
    82             except KeyError:
    79                 raise repo.LookupError(_("'%s' not found in manifest") % path)
    83                 raise repo.LookupError(_("'%s' not found in manifest") % path)
       
    84         if '_manifestdelta' in self.__dict__ or path in self.files():
       
    85             if path in self._manifestdelta:
       
    86                 return self._manifestdelta[path]
    80         node, flag = self._repo.manifest.find(self._changeset[0], path)
    87         node, flag = self._repo.manifest.find(self._changeset[0], path)
    81         if not node:
    88         if not node:
    82             raise repo.LookupError(_("'%s' not found in manifest") % path)
    89             raise repo.LookupError(_("'%s' not found in manifest") % path)
    83 
    90 
    84         return node
    91         return node