[PATCH memctx-cache] memctx: always use cache for filectxfn
FUJIWARA Katsunori
foozy at lares.dti.ne.jp
Sun Jun 11 21:53:15 UTC 2017
At Sat, 10 Jun 2017 16:01:23 -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 12f2faa6019f497ba08960564cfceff80250e75a
> # Parent 7e9d0d8ff938dcf8ca193c17db5321a05a48e718
> memctx: always use cache for filectxfn
>
> I don't see a downside to doing this unless I'm missing something.
>
> diff --git a/mercurial/context.py b/mercurial/context.py
> index 7ce34af..348c13c 100644
> --- a/mercurial/context.py
> +++ b/mercurial/context.py
> @@ -2103,18 +2103,19 @@ class memctx(committablectx):
> self._files = files
> if branch is not None:
> self._extra['branch'] = encoding.fromlocal(branch)
> self.substate = {}
>
> + self._filectxfn = filectxfn
> if isinstance(filectxfn, patch.filestore):
> self._filectxfn = memfilefrompatch(filectxfn)
> elif not callable(filectxfn):
> # if store is not callable, wrap it in a function
> self._filectxfn = memfilefromctx(filectxfn)
> - else:
> - # memoizing increases performance for e.g. vcs convert scenarios.
> - self._filectxfn = makecachingfilectxfn(filectxfn)
> +
> + # memoizing increases performance for e.g. vcs convert scenarios.
> + self._filectxfn = makecachingfilectxfn(filectxfn)
This change seems to cache also results of memfilefrompatch() and
makecachingfilectxfn(). If so, should makecachingfilectxfn() be
applied on self._filectxfn ? Or:
================
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)
- else:
- # memoizing increases performance for e.g. vcs convert scenarios.
- self._filectxfn = makecachingfilectxfn(filectxfn)
+ filectxfn = memfilefromctx(filectxfn)
+
+ # memoizing increases performance for e.g. vcs convert scenarios.
+ self._filectxfn = makecachingfilectxfn(filectxfn)
================
> if editor:
> self._text = editor(self._repo, self, [])
> self._repo.savecommitmessage(self._text)
>
>
--
----------------------------------------------------------------------
[FUJIWARA Katsunori] foozy at lares.dti.ne.jp
More information about the Mercurial-devel
mailing list