diff -r 53c07f08fea1 -r cdf0e9523de1 mercurial/localrepo.py --- a/mercurial/localrepo.py Wed Jun 12 13:42:52 2019 +0100 +++ b/mercurial/localrepo.py Mon Aug 05 13:31:12 2019 -0700 @@ -2220,6 +2220,16 @@ self.tags() self.filtered('served').tags() + # The `full` arg is documented as updating even the lazily-loaded + # caches immediately, so we're forcing a write to cause these caches + # to be warmed up even if they haven't explicitly been requested + # yet (if they've never been used by hg, they won't ever have been + # written, even if they're a subset of another kind of cache that + # *has* been used). + for filt in repoview.filtertable.keys(): + filtered = self.filtered(filt) + filtered.branchmap().write(filtered) + def invalidatecaches(self): if r'_tagscache' in vars(self):