comparison mercurial/context.py @ 6742:2d54e7c1e69d

context: clean up parents()
author Matt Mackall <mpm@selenic.com>
date Thu, 26 Jun 2008 13:46:33 -0500
parents 5918e2b79859
children 86e8187b721a
comparison
equal deleted inserted replaced
6741:5918e2b79859 6742:2d54e7c1e69d
53 return self._manifest 53 return self._manifest
54 elif name == '_manifestdelta': 54 elif name == '_manifestdelta':
55 md = self._repo.manifest.readdelta(self._changeset[0]) 55 md = self._repo.manifest.readdelta(self._changeset[0])
56 self._manifestdelta = md 56 self._manifestdelta = md
57 return self._manifestdelta 57 return self._manifestdelta
58 elif name == '_parents':
59 p = self._repo.changelog.parents(self._node)
60 if p[1] == nullid:
61 p = p[:-1]
62 self._parents = [changectx(self._repo, x) for x in p]
63 return self._parents
58 else: 64 else:
59 raise AttributeError, name 65 raise AttributeError, name
60 66
61 def __contains__(self, key): 67 def __contains__(self, key):
62 return key in self._manifest 68 return key in self._manifest
83 def extra(self): return self._changeset[5] 89 def extra(self): return self._changeset[5]
84 def tags(self): return self._repo.nodetags(self._node) 90 def tags(self): return self._repo.nodetags(self._node)
85 91
86 def parents(self): 92 def parents(self):
87 """return contexts for each parent changeset""" 93 """return contexts for each parent changeset"""
88 p = self._repo.changelog.parents(self._node) 94 return self._parents
89 return [changectx(self._repo, x) for x in p]
90 95
91 def children(self): 96 def children(self):
92 """return contexts for each child changeset""" 97 """return contexts for each child changeset"""
93 c = self._repo.changelog.children(self._node) 98 c = self._repo.changelog.children(self._node)
94 return [changectx(self._repo, x) for x in c] 99 return [changectx(self._repo, x) for x in c]
482 487
483 def __nonzero__(self): 488 def __nonzero__(self):
484 return True 489 return True
485 490
486 def __getattr__(self, name): 491 def __getattr__(self, name):
487 if name == '_parents':
488 self._parents = self._repo.parents()
489 return self._parents
490 if name == '_status': 492 if name == '_status':
491 self._status = self._repo.status() 493 self._status = self._repo.status()
492 return self._status 494 return self._status
493 if name == '_manifest': 495 if name == '_manifest':
494 self._buildmanifest() 496 self._buildmanifest()
495 return self._manifest 497 return self._manifest
498 elif name == '_parents':
499 p = self._repo.dirstate.parents()
500 if p[1] == nullid:
501 p = p[:-1]
502 self._parents = [changectx(self._repo, x) for x in p]
503 return self._parents
496 else: 504 else:
497 raise AttributeError, name 505 raise AttributeError, name
498 506
499 def _buildmanifest(self): 507 def _buildmanifest(self):
500 """generate a manifest corresponding to the working directory""" 508 """generate a manifest corresponding to the working directory"""
541 549
542 def tags(self): 550 def tags(self):
543 t = [] 551 t = []
544 [t.extend(p.tags()) for p in self.parents()] 552 [t.extend(p.tags()) for p in self.parents()]
545 return t 553 return t
546
547 def parents(self):
548 """return contexts for each parent changeset"""
549 return self._parents
550 554
551 def children(self): 555 def children(self):
552 return [] 556 return []
553 557
554 def fileflags(self, path): 558 def fileflags(self, path):