diff mercurial/manifest.py @ 37374:ac42e39b1b77

narrow: move manifestlog overrides to core With this and the previous patch, I couldn't measure any significant difference from `hg files -r .` in a FireFox repo with 65k files. I tried with both a flat-manifest and a tree-manifest version of it. Neither had the narrow extension enabled. Differential Revision: https://phab.mercurial-scm.org/D3046
author Martin von Zweigbergk <martinvonz@google.com>
date Tue, 03 Apr 2018 09:58:16 -0700
parents c50078fc32f3
children cf59de802883
line wrap: on
line diff
--- a/mercurial/manifest.py	Mon Apr 02 23:46:04 2018 -0700
+++ b/mercurial/manifest.py	Tue Apr 03 09:58:16 2018 -0700
@@ -1303,6 +1303,9 @@
         if node in self._dirmancache.get(dir, ()):
             return self._dirmancache[dir][node]
 
+        if not self._narrowmatch.always():
+            if not self._narrowmatch.visitdir(dir[:-1] or '.'):
+                return excludeddirmanifestctx(dir, node)
         if dir:
             if self._revlog._treeondisk:
                 if verify: