equal
deleted
inserted
replaced
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): |