changeset 51550:659f766629c8

branchcache: stop using `copy(…)` in `replace(…)` The `copy` method is mostly used for a filter level to inherit the branchmap from a subset. So we stop using (abusing) it in "replace" to ensure `copy` is used only for inheritance purposes. Since `replace` is a method of the BranchMapCache, it seems fine to do lower level operation there.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Sat, 09 Mar 2024 02:07:15 +0100
parents 94f821490645
children 18c2753434f2
files mercurial/branchmap.py
diffstat 1 files changed, 3 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/branchmap.py	Fri Mar 08 16:47:32 2024 +0100
+++ b/mercurial/branchmap.py	Sat Mar 09 02:07:15 2024 +0100
@@ -157,7 +157,9 @@
             for candidate in (b'base', b'immutable', b'served'):
                 rview = repo.filtered(candidate)
                 if cache.validfor(rview):
-                    cache = self._per_filter[candidate] = cache.copy(rview)
+                    cache._filtername = candidate
+                    self._per_filter[candidate] = cache
+                    cache._dirty = True
                     cache.write(rview)
                     return