##// END OF EJS Templates
clfilter: make the revlog class responsible of all its iteration...
Pierre-Yves David -
r17672:47404794 default
parent child Browse files
Show More
@@ -256,6 +256,13 b' class revlog(object):'
256 256 def __iter__(self):
257 257 for i in xrange(len(self)):
258 258 yield i
259 def revs(self, start=0, stop=None):
260 """iterate over all rev in this revlog (from start to stop)"""
261 if stop is None:
262 stop = len(self)
263 else:
264 stop += 1
265 return xrange(start, stop)
259 266
260 267 @util.propertycache
261 268 def nodemap(self):
@@ -374,7 +381,7 b' class revlog(object):'
374 381 return
375 382
376 383 seen = set(revs)
377 for i in xrange(first + 1, len(self)):
384 for i in self.revs(start=first + 1):
378 385 for x in self.parentrevs(i):
379 386 if x != nullrev and x in seen:
380 387 seen.add(i)
@@ -549,7 +556,7 b' class revlog(object):'
549 556 # Don't start at nullid since we don't want nullid in our output list,
550 557 # and if nullid shows up in descendants, empty parents will look like
551 558 # they're descendants.
552 for r in xrange(max(lowestrev, 0), highestrev + 1):
559 for r in self.revs(start=max(lowestrev, 0), stop=highestrev + 1):
553 560 n = self.node(r)
554 561 isdescendant = False
555 562 if lowestrev == nullrev: # Everybody is a descendant of nullid
@@ -606,7 +613,7 b' class revlog(object):'
606 613 return [nullrev]
607 614 ishead = [1] * (count + 1)
608 615 index = self.index
609 for r in xrange(count):
616 for r in self:
610 617 e = index[r]
611 618 ishead[e[5]] = ishead[e[6]] = 0
612 619 return [r for r in xrange(count) if ishead[r]]
@@ -634,7 +641,7 b' class revlog(object):'
634 641 heads = set((startrev,))
635 642
636 643 parentrevs = self.parentrevs
637 for r in xrange(startrev + 1, len(self)):
644 for r in self.revs(start=startrev + 1):
638 645 for p in parentrevs(r):
639 646 if p in reachable:
640 647 if r not in stoprevs:
@@ -649,7 +656,7 b' class revlog(object):'
649 656 """find the children of a given node"""
650 657 c = []
651 658 p = self.rev(node)
652 for r in range(p + 1, len(self)):
659 for r in self.revs(start=p + 1):
653 660 prevs = [pr for pr in self.parentrevs(r) if pr != nullrev]
654 661 if prevs:
655 662 for pr in prevs:
General Comments 0
You need to be logged in to leave comments. Login now