changeset 47299:7edaf91c7886

updatecaches: use the `caches` argument instead of a special `full` value After a clone we want to update most cachem, but not exactly all of them. We can now cleanly express this. Differential Revision: https://phab.mercurial-scm.org/D10730
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Mon, 17 May 2021 15:42:18 +0200
parents e96f75857361
children 8b2d09c7e5cd
files mercurial/hg.py mercurial/interfaces/repository.py mercurial/localrepo.py
diffstat 3 files changed, 8 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/hg.py	Mon May 17 15:27:29 2021 +0200
+++ b/mercurial/hg.py	Mon May 17 15:42:18 2021 +0200
@@ -52,6 +52,7 @@
     verify as verifymod,
     vfs as vfsmod,
 )
+from .interfaces import repository as repositorymod
 from .utils import (
     hashutil,
     stringutil,
@@ -1054,7 +1055,7 @@
             # as the only "bad" outcome would be some slowness. That potential
             # slowness already affect reader.
             with destrepo.lock():
-                destrepo.updatecaches(full=b"post-clone")
+                destrepo.updatecaches(caches=repositorymod.CACHES_POST_CLONE)
     finally:
         release(srclock, destlock)
         if cleandir is not None:
--- a/mercurial/interfaces/repository.py	Mon May 17 15:27:29 2021 +0200
+++ b/mercurial/interfaces/repository.py	Mon May 17 15:42:18 2021 +0200
@@ -87,6 +87,11 @@
     CACHE_TAGS_SERVED,
 }
 
+# the cache to warm by default on simple call
+# (this is a mutable set to let extension update it)
+CACHES_POST_CLONE = CACHES_ALL.copy()
+CACHES_POST_CLONE.discard(CACHE_FILE_NODE_TAGS)
+
 
 class ipeerconnection(interfaceutil.Interface):
     """Represents a "connection" to a repository.
--- a/mercurial/localrepo.py	Mon May 17 15:27:29 2021 +0200
+++ b/mercurial/localrepo.py	Mon May 17 15:42:18 2021 +0200
@@ -2758,8 +2758,7 @@
             if full:
                 caches = repository.CACHES_ALL
                 if full == b"post-clone":
-                    caches = caches.copy()
-                    caches.discard(repository.CACHE_FILE_NODE_TAGS)
+                    caches = repository.CACHES_POST_CLONE
             else:
                 caches = repository.CACHES_DEFAULT