[PATCH memctx-cache V2] memctx: always use cache for filectxfn

Sean Farley sean at farley.io
Mon Jun 12 17:58:41 EDT 2017


Yuya Nishihara <yuya at tcha.org> writes:

> On Mon, 12 Jun 2017 16:52:36 +0900, FUJIWARA Katsunori wrote:
>> At Sun, 11 Jun 2017 18:20:26 -0700,
>> Sean Farley wrote:
>> > 
>> > # HG changeset patch
>> > # User Sean Farley <sean at farley.io>
>> > # Date 1497135618 25200
>> > #      Sat Jun 10 16:00:18 2017 -0700
>> > # Branch memctx-cache
>> > # Node ID df6f0855d09ede751ec95e98fa840291f03c69e9
>> > # Parent  7e9d0d8ff938dcf8ca193c17db5321a05a48e718
>> > memctx: always use cache for filectxfn
>> > 
>> > I don't see a downside to doing this unless I'm missing something.
>> > Thanks to foozy for correcting my previous bad logic.
>> 
>> LGTM :-)
>
> Yeah. Queued per review, thanks.
>
>> > diff --git a/mercurial/context.py b/mercurial/context.py
>> > index 7ce34af..818f173 100644
>> > --- a/mercurial/context.py
>> > +++ b/mercurial/context.py
>> > @@ -2104,17 +2104,17 @@ class memctx(committablectx):
>> >          if branch is not None:
>> >              self._extra['branch'] = encoding.fromlocal(branch)
>> >          self.substate = {}
>> >  
>> >          if isinstance(filectxfn, patch.filestore):
>> > -            self._filectxfn = memfilefrompatch(filectxfn)
>> > +            filectxfn = memfilefrompatch(filectxfn)
>> >          elif not callable(filectxfn):
>> >              # if store is not callable, wrap it in a function
>> > -            self._filectxfn = memfilefromctx(filectxfn)
>
> One possible downside would be there might be a cache leak by e.g. ctx->p1/p2
> chain, but I couldn't come up with a real example.

My guess is that Phil and I might find something while doing the
in-memory merge stuff. But same as you: nothing concrete yet (and it's
easy enough to back out if we need to).
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 800 bytes
Desc: not available
URL: <http://www.mercurial-scm.org/pipermail/mercurial-devel/attachments/20170612/7defa478/attachment.sig>


More information about the Mercurial-devel mailing list