[PATCH 10 of 14] obsstore: pass a repository object for initialisation
Boris Feld
boris.feld at octobus.net
Fri Jul 14 18:15:44 UTC 2017
On Fri, 2017-07-14 at 14:11 -0400, Augie Fackler wrote:
> On Sun, Jul 09, 2017 at 07:55:22PM +0200, Boris Feld wrote:
> > # HG changeset patch
> > # User Boris Feld <boris.feld at octobus.net>
> > # Date 1495197862 -7200
> > # Fri May 19 14:44:22 2017 +0200
> > # Node ID 985d753d4f5799f2a332140adedb06efd465d62b
> > # Parent 63214f4d9a766761259b650539eede424413e6a2
> > # EXP-Topic obs-cache
> > obsstore: pass a repository object for initialisation
> >
> > The cache will needs a repository object (to grab a 'vfs'), so we
> > pass a repo object instead of just the 'svfs' and we grab the
> > 'svfs'
> > from there.
>
> I suspect I'll get to it, but why does this cache want to know about
> anything outside of svfs?
>
> I'm pretty uncomfortable (architecturally) with passing all of `self`
> into the cache layer.
The obscache need the vfs and not the svfs because caches lives in .hg
and not in .hg/store.
Passing the whole repo and grabbing what we need seemed simpler.
>
> >
> > diff -r 63214f4d9a76 -r 985d753d4f57 contrib/perf.py
> > --- a/contrib/perf.py Fri May 19 14:46:26 2017 +0200
> > +++ b/contrib/perf.py Fri May 19 14:44:22 2017 +0200
> > @@ -1391,8 +1391,7 @@
> >
> > Result is the number of markers in the repo."""
> > timer, fm = gettimer(ui)
> > - svfs = getsvfs(repo)
> > - timer(lambda: len(obsolete.obsstore(svfs)))
> > + timer(lambda: len(obsolete.obsstore(repo)))
> > fm.end()
> >
> > @command('perflrucachedict', formatteropts +
> > diff -r 63214f4d9a76 -r 985d753d4f57 mercurial/obsolete.py
> > --- a/mercurial/obsolete.py Fri May 19 14:46:26 2017 +0200
> > +++ b/mercurial/obsolete.py Fri May 19 14:44:22 2017 +0200
> > @@ -519,10 +519,10 @@
> > # 1024 byte should be about 10 markers in average
> > _obskeyspan = 1024
> >
> > - def __init__(self, svfs, defaultformat=_fm1version,
> > readonly=False):
> > + def __init__(self, repo, defaultformat=_fm1version,
> > readonly=False):
> > # caches for various obsolescence related cache
> > self.caches = {}
> > - self.svfs = svfs
> > + self.svfs = repo.svfs
> > self._defaultformat = defaultformat
> > self._readonly = readonly
> >
> > @@ -799,7 +799,7 @@
> > if defaultformat is not None:
> > kwargs['defaultformat'] = defaultformat
> > readonly = not isenabled(repo, createmarkersopt)
> > - store = obsstore(repo.svfs, readonly=readonly, **kwargs)
> > + store = obsstore(repo, readonly=readonly, **kwargs)
> > if store and readonly:
> > ui.warn(_('obsolete feature not enabled but %i markers
> > found!\n')
> > % len(list(store)))
> > _______________________________________________
> > Mercurial-devel mailing list
> > Mercurial-devel at mercurial-scm.org
> > https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
More information about the Mercurial-devel
mailing list