Mercurial > public > mercurial-scm > hg
comparison mercurial/revlog.py @ 902:c749ca37aed1
Add optional stop revision to revlog.heads
author | mason@suse.com |
---|---|
date | Sun, 14 Aug 2005 20:09:09 -0800 |
parents | 01215ad04283 |
children | 6d5a62a549fa |
comparison
equal
deleted
inserted
replaced
901:120cba94d5aa | 902:c749ca37aed1 |
---|---|
166 def start(self, rev): return self.index[rev][0] | 166 def start(self, rev): return self.index[rev][0] |
167 def length(self, rev): return self.index[rev][1] | 167 def length(self, rev): return self.index[rev][1] |
168 def end(self, rev): return self.start(rev) + self.length(rev) | 168 def end(self, rev): return self.start(rev) + self.length(rev) |
169 def base(self, rev): return self.index[rev][2] | 169 def base(self, rev): return self.index[rev][2] |
170 | 170 |
171 def heads(self): | 171 def heads(self, stop=None): |
172 p = {} | 172 p = {} |
173 h = [] | 173 h = [] |
174 stoprev = 0 | |
175 if stop and stop in self.nodemap: | |
176 stoprev = self.rev(stop) | |
177 | |
174 for r in range(self.count() - 1, -1, -1): | 178 for r in range(self.count() - 1, -1, -1): |
175 n = self.node(r) | 179 n = self.node(r) |
176 if n not in p: | 180 if n not in p: |
177 h.append(n) | 181 h.append(n) |
182 if n == stop: | |
183 break | |
184 if r < stoprev: | |
185 break | |
178 for pn in self.parents(n): | 186 for pn in self.parents(n): |
179 p[pn] = 1 | 187 p[pn] = 1 |
180 return h | 188 return h |
181 | 189 |
182 def children(self, node): | 190 def children(self, node): |