comparison mercurial/revlogutils/deltas.py @ 39335:1441eb38849f

revlogdeltas: pass revision number to _candidatesgroups The `_candidates_groups` logic works on revisions, so the nodes are currently just converted to revs at the top of the function. It seems cleaner to instead pass revision numbers to the function. Having this conversion out of the way will help for further cleanups.
author Boris Feld <boris.feld@octobus.net>
date Sat, 18 Aug 2018 07:32:05 +0200
parents 507f5b1dd7c8
children 1c6ff52fe9cf
comparison
equal deleted inserted replaced
39334:507f5b1dd7c8 39335:1441eb38849f
574 grouped by level of easiness. 574 grouped by level of easiness.
575 """ 575 """
576 gdelta = revlog._generaldelta 576 gdelta = revlog._generaldelta
577 curr = len(revlog) 577 curr = len(revlog)
578 prev = curr - 1 578 prev = curr - 1
579 p1r, p2r = revlog.rev(p1), revlog.rev(p2)
580 579
581 # should we try to build a delta? 580 # should we try to build a delta?
582 if prev != nullrev and revlog._storedeltachains: 581 if prev != nullrev and revlog._storedeltachains:
583 tested = set() 582 tested = set()
584 # This condition is true most of the time when processing 583 # This condition is true most of the time when processing
591 yield (cachedelta[0],) 590 yield (cachedelta[0],)
592 tested.add(cachedelta[0]) 591 tested.add(cachedelta[0])
593 592
594 if gdelta: 593 if gdelta:
595 # exclude already lazy tested base if any 594 # exclude already lazy tested base if any
596 parents = [p for p in (p1r, p2r) 595 parents = [p for p in (p1, p2)
597 if p != nullrev and p not in tested] 596 if p != nullrev and p not in tested]
598 597
599 if not revlog._deltabothparents and len(parents) == 2: 598 if not revlog._deltabothparents and len(parents) == 2:
600 parents.sort() 599 parents.sort()
601 # To minimize the chance of having to build a fulltext, 600 # To minimize the chance of having to build a fulltext,
732 deltalength = self.revlog.length 731 deltalength = self.revlog.length
733 deltaparent = self.revlog.deltaparent 732 deltaparent = self.revlog.deltaparent
734 733
735 deltainfo = None 734 deltainfo = None
736 deltas_limit = revinfo.textlen * LIMIT_DELTA2TEXT 735 deltas_limit = revinfo.textlen * LIMIT_DELTA2TEXT
737 groups = _candidategroups(self.revlog, p1, p2, cachedelta) 736 p1r, p2r = revlog.rev(p1), revlog.rev(p2)
737 groups = _candidategroups(self.revlog, p1r, p2r, cachedelta)
738 for candidaterevs in groups: 738 for candidaterevs in groups:
739 # filter out delta base that will never produce good delta 739 # filter out delta base that will never produce good delta
740 candidaterevs = [r for r in candidaterevs 740 candidaterevs = [r for r in candidaterevs
741 if self.revlog.length(r) <= deltas_limit] 741 if self.revlog.length(r) <= deltas_limit]
742 nominateddeltas = [] 742 nominateddeltas = []