##// 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 def __iter__(self):
256 def __iter__(self):
257 for i in xrange(len(self)):
257 for i in xrange(len(self)):
258 yield i
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 @util.propertycache
267 @util.propertycache
261 def nodemap(self):
268 def nodemap(self):
@@ -374,7 +381,7 b' class revlog(object):'
374 return
381 return
375
382
376 seen = set(revs)
383 seen = set(revs)
377 for i in xrange(first + 1, len(self)):
384 for i in self.revs(start=first + 1):
378 for x in self.parentrevs(i):
385 for x in self.parentrevs(i):
379 if x != nullrev and x in seen:
386 if x != nullrev and x in seen:
380 seen.add(i)
387 seen.add(i)
@@ -549,7 +556,7 b' class revlog(object):'
549 # Don't start at nullid since we don't want nullid in our output list,
556 # Don't start at nullid since we don't want nullid in our output list,
550 # and if nullid shows up in descendants, empty parents will look like
557 # and if nullid shows up in descendants, empty parents will look like
551 # they're descendants.
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 n = self.node(r)
560 n = self.node(r)
554 isdescendant = False
561 isdescendant = False
555 if lowestrev == nullrev: # Everybody is a descendant of nullid
562 if lowestrev == nullrev: # Everybody is a descendant of nullid
@@ -606,7 +613,7 b' class revlog(object):'
606 return [nullrev]
613 return [nullrev]
607 ishead = [1] * (count + 1)
614 ishead = [1] * (count + 1)
608 index = self.index
615 index = self.index
609 for r in xrange(count):
616 for r in self:
610 e = index[r]
617 e = index[r]
611 ishead[e[5]] = ishead[e[6]] = 0
618 ishead[e[5]] = ishead[e[6]] = 0
612 return [r for r in xrange(count) if ishead[r]]
619 return [r for r in xrange(count) if ishead[r]]
@@ -634,7 +641,7 b' class revlog(object):'
634 heads = set((startrev,))
641 heads = set((startrev,))
635
642
636 parentrevs = self.parentrevs
643 parentrevs = self.parentrevs
637 for r in xrange(startrev + 1, len(self)):
644 for r in self.revs(start=startrev + 1):
638 for p in parentrevs(r):
645 for p in parentrevs(r):
639 if p in reachable:
646 if p in reachable:
640 if r not in stoprevs:
647 if r not in stoprevs:
@@ -649,7 +656,7 b' class revlog(object):'
649 """find the children of a given node"""
656 """find the children of a given node"""
650 c = []
657 c = []
651 p = self.rev(node)
658 p = self.rev(node)
652 for r in range(p + 1, len(self)):
659 for r in self.revs(start=p + 1):
653 prevs = [pr for pr in self.parentrevs(r) if pr != nullrev]
660 prevs = [pr for pr in self.parentrevs(r) if pr != nullrev]
654 if prevs:
661 if prevs:
655 for pr in prevs:
662 for pr in prevs:
General Comments 0
You need to be logged in to leave comments. Login now