# HG changeset patch # User Pierre-Yves David # Date 1704377050 -3600 # Node ID 1ea56b10dd4a1fadc83ddddc82ab5bbf96cc6245 # Parent 9a1239c362aeeaab59a8cab390d750fc2e7367d4 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. diff -r 9a1239c362ae -r 1ea56b10dd4a mercurial/revlogutils/deltas.py --- a/mercurial/revlogutils/deltas.py Thu Jan 04 14:51:48 2024 +0100 +++ b/mercurial/revlogutils/deltas.py Thu Jan 04 15:04:10 2024 +0100 @@ -808,11 +808,13 @@ return False return True - def _pre_filter_rev(self, rev): - """return True if it seems okay to test a rev, False otherwise""" - if not self._pre_filter_rev_universal(rev): - return False + def _pre_filter_rev_delta_chain(self, rev): + """pre filtering that is needed in sparse revlog cases + return True if it seems okay to test a rev, False otherwise. + + used by _pre_filter_rev. + """ deltas_limit = self.revinfo.textlen * LIMIT_DELTA2TEXT # filter out delta base that will never produce good delta # @@ -835,7 +837,14 @@ # if chain already have too much data, skip base if deltas_limit < chainsize: return False + return True + def _pre_filter_rev(self, rev): + """return True if it seems okay to test a rev, False otherwise""" + if not self._pre_filter_rev_universal(rev): + return False + if not self._pre_filter_rev_delta_chain(rev): + return False if self.revlog.delta_config.sparse_revlog: if not self._pre_filter_rev_sparse(rev): return False