[patch 05/10] Add optional stop revision to revlog.heads

Chris Mason mason at suse.com
Tue Aug 9 12:42:58 CDT 2005


# HG changeset patch
# User mason at suse.com

Add optional stop revision to revlog.heads

Index: mine/mercurial/revlog.py
===================================================================
--- mine.orig/mercurial/revlog.py	2005-07-11 07:05:45.000000000 -0400
+++ mine/mercurial/revlog.py	2005-07-25 16:24:54.000000000 -0400
@@ -168,13 +168,21 @@ class revlog:
     def end(self, rev): return self.start(rev) + self.length(rev)
     def base(self, rev): return self.index[rev][2]
 
-    def heads(self):
+    def heads(self, stop=None):
         p = {}
         h = []
+        stoprev = 0
+        if stop and stop in self.nodemap:
+            stoprev = self.rev(stop)
+            
         for r in range(self.count() - 1, -1, -1):
             n = self.node(r)
             if n not in p:
                 h.append(n)
+            if n == stop:
+                break
+            if r < stoprev:
+                break
             for pn in self.parents(n):
                 p[pn] = 1
         return h

--


More information about the Mercurial mailing list