# HG changeset patch # User Augie Fackler # Date 1565895207 14400 # Node ID 3df3b139a43d582e2d517b84b1a154a5009d4a32 # Parent d26a6706b07095b7d6ae620ee8a26243bb05923d localrepo: push manifestlog and changelog construction code into store This feels substantially more appropriate, as the store is actually the layer with knowledge of how to handle this storage. I didn't move the caching decorators for now because that's going to require some more involved work, and this unblocks my current experimentation. Differential Revision: https://phab.mercurial-scm.org/D6732 diff -r d26a6706b070 -r 3df3b139a43d mercurial/localrepo.py --- a/mercurial/localrepo.py Sat Sep 07 12:49:33 2019 +0200 +++ b/mercurial/localrepo.py Thu Aug 15 14:53:27 2019 -0400 @@ -28,7 +28,6 @@ branchmap, bundle2, changegroup, - changelog, color, context, dirstate, @@ -41,7 +40,6 @@ filelog, hook, lock as lockmod, - manifest, match as matchmod, merge as mergemod, mergeutil, @@ -1304,14 +1302,11 @@ @storecache('00changelog.i') def changelog(self): - return changelog.changelog(self.svfs, - trypending=txnutil.mayhavepending(self.root)) + return self.store.changelog(txnutil.mayhavepending(self.root)) @storecache('00manifest.i') def manifestlog(self): - rootstore = manifest.manifestrevlog(self.svfs) - return manifest.manifestlog(self.svfs, self, rootstore, - self._storenarrowmatch) + return self.store.manifestlog(self, self._storenarrowmatch) @repofilecache('dirstate') def dirstate(self): diff -r d26a6706b070 -r 3df3b139a43d mercurial/store.py --- a/mercurial/store.py Sat Sep 07 12:49:33 2019 +0200 +++ b/mercurial/store.py Thu Aug 15 14:53:27 2019 -0400 @@ -15,7 +15,9 @@ from .i18n import _ from . import ( + changelog, error, + manifest, node, policy, pycompat, @@ -379,6 +381,14 @@ l.sort() return l + def changelog(self, trypending): + return changelog.changelog(self.vfs, trypending=trypending) + + def manifestlog(self, repo, storenarrowmatch): + rootstore = manifest.manifestrevlog(self.vfs) + return manifest.manifestlog( + self.vfs, repo, rootstore, storenarrowmatch) + def datafiles(self, matcher=None): return self._walk('data', True) + self._walk('meta', True)