comparison mercurial/context.py @ 3335:b02e60097bbe

changectx: search manifest delta for filenode
author Brendan Cully <brendan@kublai.com>
date Wed, 11 Oct 2006 13:56:35 -0700
parents e44eadc92ec4
children 69fe021cc23e
comparison
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