89 |
89 |
90 def p2(self): |
90 def p2(self): |
91 if len(self._parents) == 2: |
91 if len(self._parents) == 2: |
92 return self._parents[1] |
92 return self._parents[1] |
93 return changectx(self._repo, -1) |
93 return changectx(self._repo, -1) |
|
94 |
|
95 def _fileinfo(self, path): |
|
96 if '_manifest' in self.__dict__: |
|
97 try: |
|
98 return self._manifest[path], self._manifest.flags(path) |
|
99 except KeyError: |
|
100 raise error.ManifestLookupError(self._node, path, |
|
101 _('not found in manifest')) |
|
102 if '_manifestdelta' in self.__dict__ or path in self.files(): |
|
103 if path in self._manifestdelta: |
|
104 return (self._manifestdelta[path], |
|
105 self._manifestdelta.flags(path)) |
|
106 node, flag = self._repo.manifest.find(self._changeset[0], path) |
|
107 if not node: |
|
108 raise error.ManifestLookupError(self._node, path, |
|
109 _('not found in manifest')) |
|
110 |
|
111 return node, flag |
94 |
112 |
95 class changectx(basectx): |
113 class changectx(basectx): |
96 """A changecontext object makes access to data related to a particular |
114 """A changecontext object makes access to data related to a particular |
97 changeset convenient. It represents a read-only context already presnt in |
115 changeset convenient. It represents a read-only context already presnt in |
98 the repo.""" |
116 the repo.""" |
310 if self.bumped(): |
328 if self.bumped(): |
311 troubles.append('bumped') |
329 troubles.append('bumped') |
312 if self.divergent(): |
330 if self.divergent(): |
313 troubles.append('divergent') |
331 troubles.append('divergent') |
314 return troubles |
332 return troubles |
315 |
|
316 def _fileinfo(self, path): |
|
317 if '_manifest' in self.__dict__: |
|
318 try: |
|
319 return self._manifest[path], self._manifest.flags(path) |
|
320 except KeyError: |
|
321 raise error.ManifestLookupError(self._node, path, |
|
322 _('not found in manifest')) |
|
323 if '_manifestdelta' in self.__dict__ or path in self.files(): |
|
324 if path in self._manifestdelta: |
|
325 return (self._manifestdelta[path], |
|
326 self._manifestdelta.flags(path)) |
|
327 node, flag = self._repo.manifest.find(self._changeset[0], path) |
|
328 if not node: |
|
329 raise error.ManifestLookupError(self._node, path, |
|
330 _('not found in manifest')) |
|
331 |
|
332 return node, flag |
|
333 |
333 |
334 def filenode(self, path): |
334 def filenode(self, path): |
335 return self._fileinfo(path)[0] |
335 return self._fileinfo(path)[0] |
336 |
336 |
337 def flags(self, path): |
337 def flags(self, path): |