# HG changeset patch # User mason@suse.com # Date 1124078949 28800 # Node ID c749ca37aed14dee1489567b42f5784cc0c82de6 # Parent 120cba94d5aacf7cd036fccf10a59287285a54ba Add optional stop revision to revlog.heads diff -r 120cba94d5aa -r c749ca37aed1 mercurial/revlog.py --- a/mercurial/revlog.py Sun Aug 14 20:09:01 2005 -0800 +++ b/mercurial/revlog.py Sun Aug 14 20:09:09 2005 -0800 @@ -168,13 +168,21 @@ 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