comparison mercurial/revlogutils/deltas.py @ 51337:1ea56b10dd4a

delta-find: split the delta-chain part of `_pre_filter_rev` in a method Since `_pre_filter_rev` contains logic from various sources of constraint, we start splitting is in subfunction to clarify and document the grouping.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Thu, 04 Jan 2024 15:04:10 +0100
parents 9a1239c362ae
children 176d530f59af
comparison
equal deleted inserted replaced
51336:9a1239c362ae 51337:1ea56b10dd4a
806 # delta probable lower bound is larger than target 806 # delta probable lower bound is larger than target
807 # base 807 # base
808 return False 808 return False
809 return True 809 return True
810 810
811 def _pre_filter_rev(self, rev): 811 def _pre_filter_rev_delta_chain(self, rev):
812 """return True if it seems okay to test a rev, False otherwise""" 812 """pre filtering that is needed in sparse revlog cases
813 if not self._pre_filter_rev_universal(rev): 813
814 return False 814 return True if it seems okay to test a rev, False otherwise.
815 815
816 used by _pre_filter_rev.
817 """
816 deltas_limit = self.revinfo.textlen * LIMIT_DELTA2TEXT 818 deltas_limit = self.revinfo.textlen * LIMIT_DELTA2TEXT
817 # filter out delta base that will never produce good delta 819 # filter out delta base that will never produce good delta
818 # 820 #
819 # if the delta of that base is already bigger than the limit 821 # if the delta of that base is already bigger than the limit
820 # for the delta chain size, doing a delta is hopeless. 822 # for the delta chain size, doing a delta is hopeless.
833 ): 835 ):
834 return False 836 return False
835 # if chain already have too much data, skip base 837 # if chain already have too much data, skip base
836 if deltas_limit < chainsize: 838 if deltas_limit < chainsize:
837 return False 839 return False
838 840 return True
841
842 def _pre_filter_rev(self, rev):
843 """return True if it seems okay to test a rev, False otherwise"""
844 if not self._pre_filter_rev_universal(rev):
845 return False
846 if not self._pre_filter_rev_delta_chain(rev):
847 return False
839 if self.revlog.delta_config.sparse_revlog: 848 if self.revlog.delta_config.sparse_revlog:
840 if not self._pre_filter_rev_sparse(rev): 849 if not self._pre_filter_rev_sparse(rev):
841 return False 850 return False
842 851
843 return True 852 return True