hgext3rd/evolve/stablerange.py
changeset 2204 61a8b51348a1
parent 2201 8d371329e8b9
child 2205 bd5e2496e5cd
equal deleted inserted replaced
2203:8a2e1f6e5443 2204:61a8b51348a1
   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: