# HG changeset patch # User Boris Feld # Date 2018-09-07 15:17:34 # Node ID 993d7e2c8b793f2d8fb5c16536cdfed91d87ba37 # Parent cc85ebb68ff9527f9b07bbe69588782df1f14414 snapshot: make sure we'll never refine delta base from a reused source The point of reusing delta from the source is to avoid doing computation when applying a bundle. Refining such delta would go against that spirit. We do not have refining logic in place yet. This code needed to be moved out of the way before we could start adding such logic. diff --git a/mercurial/revlogutils/deltas.py b/mercurial/revlogutils/deltas.py --- a/mercurial/revlogutils/deltas.py +++ b/mercurial/revlogutils/deltas.py @@ -630,6 +630,19 @@ def _findsnapshots(revlog, cache, start_ def _refinedgroups(revlog, p1, p2, cachedelta): good = None + # First we try to reuse a the delta contained in the bundle. + # (or from the source revlog) + # + # This logic only applies to general delta repositories and can be disabled + # through configuration. Disabling reuse source delta is useful when + # we want to make sure we recomputed "optimal" deltas. + if cachedelta and revlog._generaldelta and revlog._lazydeltabase: + # Assume what we received from the server is a good choice + # build delta will reuse the cache + good = yield (cachedelta[0],) + if good is not None: + yield None + return for candidates in _rawgroups(revlog, p1, p2, cachedelta): good = yield candidates if good is not None: @@ -651,17 +664,6 @@ def _rawgroups(revlog, p1, p2, cachedelt prev = curr - 1 deltachain = lambda rev: revlog._deltachain(rev)[0] - # First we try to reuse a the delta contained in the bundle. - # (or from the source revlog) - # - # This logic only applies to general delta repositories and can be disabled - # through configuration. Disabling reuse of source delta is useful when - # we want to make sure we recomputed "optimal" deltas. - if cachedelta and gdelta and revlog._lazydeltabase: - # Assume what we received from the server is a good choice - # build delta will reuse the cache - yield (cachedelta[0],) - if gdelta: # exclude already lazy tested base if any parents = [p for p in (p1, p2) if p != nullrev]