[Updated] [+ ] D11483: manifestlog: also monitor `00manifestlog.n` when applicable

marmoute (Pierre-Yves David) phabricator at mercurial-scm.org
Fri Sep 24 16:44:13 UTC 2021


marmoute updated this revision to Diff 30402.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D11483?vs=30357&id=30402

BRANCH
  stable

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D11483/new/

REVISION DETAIL
  https://phab.mercurial-scm.org/D11483

AFFECTED FILES
  mercurial/localrepo.py

CHANGE DETAILS

diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -159,6 +159,21 @@
         return paths
 
 
+class manifestlogcache(storecache):
+    """filecache for the manifestlog"""
+
+    def __init__(self):
+        super(manifestlogcache, self).__init__()
+        _cachedfiles.add((b'00manifest.i', b''))
+        _cachedfiles.add((b'00manifest.n', b''))
+
+    def tracked_paths(self, obj):
+        paths = [self.join(obj, b'00manifestlog.i')]
+        if obj.store.opener.options.get(b'persistent-nodemap', False):
+            paths.append(self.join(obj, b'00manifest.n'))
+        return paths
+
+
 class mixedrepostorecache(_basefilecache):
     """filecache for a mix files in .hg/store and outside"""
 
@@ -1697,7 +1712,7 @@
             concurrencychecker=revlogchecker.get_checker(repo.ui, b'changelog'),
         )
 
-    @storecache(b'00manifest.i')
+    @manifestlogcache()
     def manifestlog(self):
         return self.store.manifestlog(self, self._storenarrowmatch)
 



To: marmoute, #hg-reviewers
Cc: Alphare, mercurial-patches
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mercurial-scm.org/pipermail/mercurial-patches/attachments/20210924/2af58c4f/attachment-0002.html>


More information about the Mercurial-patches mailing list