##// END OF EJS Templates
context: clean up parents()
Matt Mackall -
r6742:2d54e7c1 default
parent child Browse files
Show More
@@ -55,6 +55,12 b' class changectx(object):'
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
@@ -85,8 +91,7 b' class changectx(object):'
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"""
@@ -484,15 +489,18 b' class workingctx(changectx):'
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
@@ -544,10 +552,6 b' class workingctx(changectx):'
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
554
547 def parents(self):
548 """return contexts for each parent changeset"""
549 return self._parents
550
551 def children(self):
555 def children(self):
552 return []
556 return []
553
557
@@ -489,17 +489,8 b' class localrepository(repo.repository):'
489 return context.changectx(self, changeid)
489 return context.changectx(self, changeid)
490
490
491 def parents(self, changeid=None):
491 def parents(self, changeid=None):
492 '''
492 '''get list of changectxs for parents of changeid'''
493 get list of changectxs for parents of changeid or working directory
493 return self.changectx(changeid).parents()
494 '''
495 if changeid is None:
496 pl = self.dirstate.parents()
497 else:
498 n = self.changelog.lookup(changeid)
499 pl = self.changelog.parents(n)
500 if pl[1] == nullid:
501 return [self.changectx(pl[0])]
502 return [self.changectx(pl[0]), self.changectx(pl[1])]
503
494
504 def filectx(self, path, changeid=None, fileid=None):
495 def filectx(self, path, changeid=None, fileid=None):
505 """changeid can be a changeset revision, node, or tag.
496 """changeid can be a changeset revision, node, or tag.
General Comments 0
You need to be logged in to leave comments. Login now