221 |
221 |
222 def subranges(self, repo, rangeid): |
222 def subranges(self, repo, rangeid): |
223 cached = self._subrangescache.get(rangeid) |
223 cached = self._subrangescache.get(rangeid) |
224 if cached is not None: |
224 if cached is not None: |
225 return cached |
225 return cached |
226 if self.rangelength(repo, rangeid) == 1: |
226 value = self._subranges(repo, rangeid) |
227 value = [] |
|
228 else: |
|
229 slicepoint = self._slicepoint(repo, rangeid) |
|
230 value = self._slicesrangeat(repo, rangeid, slicepoint) |
|
231 self._subrangescache[rangeid] = value |
227 self._subrangescache[rangeid] = value |
232 return value |
228 return value |
233 |
229 |
234 def revsfromrange(self, repo, rangeid): |
230 def revsfromrange(self, repo, rangeid): |
235 revs = self._revsinrangecache.get(rangeid) |
231 revs = self._revsinrangecache.get(rangeid) |
296 # * lowest revs because more chance to have descendant of other "above" |
292 # * lowest revs because more chance to have descendant of other "above" |
297 anc, revdepth = max(ancdepth, key=lambda x: (x[1], -x[0])) |
293 anc, revdepth = max(ancdepth, key=lambda x: (x[1], -x[0])) |
298 revdepth += len(cl.findmissingrevs(common=[anc], heads=[rev])) |
294 revdepth += len(cl.findmissingrevs(common=[anc], heads=[rev])) |
299 return revdepth |
295 return revdepth |
300 |
296 |
|
297 def _subranges(self, repo, rangeid): |
|
298 if self.rangelength(repo, rangeid) == 1: |
|
299 return [] |
|
300 slicepoint = self._slicepoint(repo, rangeid) |
|
301 return self._slicesrangeat(repo, rangeid, slicepoint) |
|
302 |
301 def _slicepoint(self, repo, rangeid): |
303 def _slicepoint(self, repo, rangeid): |
302 rangedepth = self.depthrev(repo, rangeid[0]) |
304 rangedepth = self.depthrev(repo, rangeid[0]) |
303 step = _hlp2(rangedepth) |
305 step = _hlp2(rangedepth) |
304 standard_start = 0 |
306 standard_start = 0 |
305 while standard_start < rangeid[1] and 0 < step: |
307 while standard_start < rangeid[1] and 0 < step: |