mercurial/localrepo.py
changeset 17675 8575f4a2126e
parent 17670 9dbd5fa6d301
child 17714 5210e5a556d9
--- a/mercurial/localrepo.py	Mon Sep 03 14:19:45 2012 +0200
+++ b/mercurial/localrepo.py	Thu Sep 20 19:01:53 2012 +0200
@@ -363,14 +363,13 @@
         return len(self.changelog)
 
     def __iter__(self):
-        for i in xrange(len(self)):
-            yield i
+        return iter(self.changelog)
 
     def revs(self, expr, *args):
         '''Return a list of revisions matching the given revset'''
         expr = revset.formatspec(expr, *args)
         m = revset.match(None, expr)
-        return [r for r in m(self, range(len(self)))]
+        return [r for r in m(self, list(self))]
 
     def set(self, expr, *args):
         '''
@@ -603,7 +602,7 @@
         # TODO: rename this function?
         tiprev = len(self) - 1
         if lrev != tiprev:
-            ctxgen = (self[r] for r in xrange(lrev + 1, tiprev + 1))
+            ctxgen = (self[r] for r in self.changelog.revs(lrev + 1, tiprev))
             self._updatebranchcache(partial, ctxgen)
             self._writebranchcache(partial, self.changelog.tip(), tiprev)