389 |
389 |
390 def _slicesrangeat(self, repo, rangeid, globalindex): |
390 def _slicesrangeat(self, repo, rangeid, globalindex): |
391 p1, p2 = self._parents(rangeid[0], repo.changelog.parentrevs) |
391 p1, p2 = self._parents(rangeid[0], repo.changelog.parentrevs) |
392 if p2 != nodemod.nullrev: |
392 if p2 != nodemod.nullrev: |
393 return self._slicesrangeatmerge(repo, rangeid, globalindex) |
393 return self._slicesrangeatmerge(repo, rangeid, globalindex) |
394 assert p1 != nodemod.nullrev |
394 |
395 rangedepth = self.depthrev(repo, rangeid[0]) |
395 reuserev = p1 |
396 topsize = rangedepth - globalindex |
396 |
397 |
397 assert reuserev != nodemod.nullrev |
398 parentrange = (p1, rangeid[1]) |
398 |
399 |
399 reuserange = (reuserev, rangeid[1]) |
400 if topsize == 1: |
400 top = (rangeid[0], globalindex) |
401 top = (rangeid[0], globalindex) |
401 |
402 return [parentrange, top] |
402 if rangeid[1] + self.rangelength(repo, reuserange) == globalindex: |
403 else: |
403 return [reuserange, top] |
404 # This will not initiate a recursion since we took appropriate |
404 # This will not initiate a recursion since we took appropriate |
405 # precaution in the caller of this method to ensure it will be so. |
405 # precaution in the caller of this method to ensure it will be so. |
406 # It the parent is a merge that will not be the case but computing |
406 # It the parent is a merge that will not be the case but computing |
407 # subranges from a merge will not recurse. |
407 # subranges from a merge will not recurse. |
408 parentsubranges = self.subranges(repo, parentrange) |
408 reusesubranges = self.subranges(repo, reuserange) |
409 slices = parentsubranges[:-1] # pop the top |
409 slices = reusesubranges[:-1] # pop the top |
410 top = (rangeid[0], globalindex) |
410 slices.append(top) |
411 slices.append(top) |
411 return slices |
412 return slices |
|
413 |
412 |
414 def _slicesrangeatmerge(self, repo, rangeid, globalindex): |
413 def _slicesrangeatmerge(self, repo, rangeid, globalindex): |
415 localindex = globalindex - rangeid[1] |
414 localindex = globalindex - rangeid[1] |
416 cl = repo.changelog |
415 cl = repo.changelog |
417 |
416 |