Mercurial > public > mercurial-scm > hg
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 |