Mercurial > hg
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): |