# HG changeset patch # User Drew Gottlieb # Date 1426285194 25200 # Node ID f263814c72acfcca51bc40b697a00680dd8e9664 # Parent 0a714a1f7d5c0d754e4c566a4372e391144854f8 manifest: add dirs() to manifestdict Manifests should have a method of accessing its own dirs, not just the context that references the manifest. This makes it easier for other optimized versions of manifests to compute their own dirs in the most efficient way. diff -r 0a714a1f7d5c -r f263814c72ac mercurial/manifest.py --- a/mercurial/manifest.py Wed Sep 17 22:34:34 2014 +0900 +++ b/mercurial/manifest.py Fri Mar 13 15:19:54 2015 -0700 @@ -6,9 +6,10 @@ # GNU General Public License version 2 or any later version. from i18n import _ -import mdiff, parsers, error, revlog, util +import mdiff, parsers, error, revlog, util, scmutil import array, struct +propertycache = util.propertycache class _lazymanifest(dict): """This is the pure implementation of lazymanifest. @@ -147,6 +148,13 @@ files.difference_update(m2) return files + @propertycache + def _dirs(self): + return scmutil.dirs(self) + + def dirs(self): + return self._dirs + def matches(self, match): '''generate a new manifest filtered by the match argument''' if match.always():