Mercurial > hg
changeset 42905:3df3b139a43d
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
author | Augie Fackler <augie@google.com> |
---|---|
date | Thu, 15 Aug 2019 14:53:27 -0400 |
parents | d26a6706b070 |
children | 6bf88befa027 |
files | mercurial/localrepo.py mercurial/store.py |
diffstat | 2 files changed, 12 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- 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):
--- 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)