comparison mercurial/context.py @ 16866:91f3ac205816

revlog: ancestors(*revs) becomes ancestors(revs) (API) Accepting a variable number of arguments as the old API did is deeply ugly, particularly as it means the API can't be extended with new arguments. Partly as a result, we have at least three different implementations of the same ancestors algorithm (!?). Most callers were forced to call ancestors(*somelist), adding to both inefficiency and ugliness.
author Bryan O'Sullivan <bryano@fb.com>
date Fri, 01 Jun 2012 12:37:18 -0700
parents 07741a5d6608
children 1093ad1e8903
comparison
equal deleted inserted replaced
16865:a6543fdcf869 16866:91f3ac205816
221 """return contexts for each child changeset""" 221 """return contexts for each child changeset"""
222 c = self._repo.changelog.children(self._node) 222 c = self._repo.changelog.children(self._node)
223 return [changectx(self._repo, x) for x in c] 223 return [changectx(self._repo, x) for x in c]
224 224
225 def ancestors(self): 225 def ancestors(self):
226 for a in self._repo.changelog.ancestors(self._rev): 226 for a in self._repo.changelog.ancestors([self._rev]):
227 yield changectx(self._repo, a) 227 yield changectx(self._repo, a)
228 228
229 def descendants(self): 229 def descendants(self):
230 for d in self._repo.changelog.descendants(self._rev): 230 for d in self._repo.changelog.descendants(self._rev):
231 yield changectx(self._repo, d) 231 yield changectx(self._repo, d)
1017 finally: 1017 finally:
1018 wlock.release() 1018 wlock.release()
1019 1019
1020 def ancestors(self): 1020 def ancestors(self):
1021 for a in self._repo.changelog.ancestors( 1021 for a in self._repo.changelog.ancestors(
1022 *[p.rev() for p in self._parents]): 1022 [p.rev() for p in self._parents]):
1023 yield changectx(self._repo, a) 1023 yield changectx(self._repo, a)
1024 1024
1025 def undelete(self, list): 1025 def undelete(self, list):
1026 pctxs = self.parents() 1026 pctxs = self.parents()
1027 wlock = self._repo.wlock() 1027 wlock = self._repo.wlock()