changeset 49680:40e24d82b513

delta-find: make sure we only use newer full snapshot as candidate The current code does not needs to protect against this, as there are no older snapshot in the current cache. However as we are getting ready to reuse this cache from one revision to another, we need the code to protect itself about what's coming.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Sun, 06 Nov 2022 17:55:55 -0500
parents b670eb3dd6c9
children c261a628e525
files mercurial/revlogutils/deltas.py
diffstat 1 files changed, 2 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/revlogutils/deltas.py	Sun Nov 06 17:55:46 2022 -0500
+++ b/mercurial/revlogutils/deltas.py	Sun Nov 06 17:55:55 2022 -0500
@@ -977,7 +977,8 @@
         # revisions instead of starting our own. Without such re-use,
         # topological branches would keep reopening new full chains. Creating
         # more and more snapshot as the repository grow.
-        yield tuple(snapshot_cache.snapshots[nullrev])
+        full = [r for r in snapshot_cache.snapshots[nullrev] if snapfloor <= r]
+        yield tuple(sorted(full))
 
     if not sparse:
         # other approach failed try against prev to hopefully save us a