##// END OF EJS Templates
dagop: unnest inner generator of revancestors()...
Yuya Nishihara -
r32997:b9e2269a default
parent child Browse files
Show More
@@ -20,15 +20,12 b' from . import ('
20 baseset = smartset.baseset
20 baseset = smartset.baseset
21 generatorset = smartset.generatorset
21 generatorset = smartset.generatorset
22
22
23 def revancestors(repo, revs, followfirst):
23 def _genrevancestors(repo, revs, followfirst):
24 """Like revlog.ancestors(), but supports followfirst."""
25 if followfirst:
24 if followfirst:
26 cut = 1
25 cut = 1
27 else:
26 else:
28 cut = None
27 cut = None
29 cl = repo.changelog
28 cl = repo.changelog
30
31 def iterate():
32 revs.sort(reverse=True)
29 revs.sort(reverse=True)
33 irevs = iter(revs)
30 irevs = iter(revs)
34 h = []
31 h = []
@@ -56,7 +53,10 b' def revancestors(repo, revs, followfirst'
56 if parent.rev() != node.nullrev:
53 if parent.rev() != node.nullrev:
57 heapq.heappush(h, -parent.rev())
54 heapq.heappush(h, -parent.rev())
58
55
59 return generatorset(iterate(), iterasc=False)
56 def revancestors(repo, revs, followfirst):
57 """Like revlog.ancestors(), but supports followfirst."""
58 gen = _genrevancestors(repo, revs, followfirst)
59 return generatorset(gen, iterasc=False)
60
60
61 def revdescendants(repo, revs, followfirst):
61 def revdescendants(repo, revs, followfirst):
62 """Like revlog.descendants() but supports followfirst."""
62 """Like revlog.descendants() but supports followfirst."""
General Comments 0
You need to be logged in to leave comments. Login now