[PATCH] log: make file log slow path usable on large repos
mpm at selenic.com
Thu Sep 12 13:45:34 CDT 2013
On Thu, 2013-09-12 at 19:56 +0400, Alexander Plavin wrote:
> 12.09.2013, 06:44, "Matt Mackall" <mpm at selenic.com>:
> > On Tue, 2013-09-10 at 19:52 -0700, Durham Goode wrote:
> >> # HG changeset patch
> >> # User Durham Goode <durham at fb.com>
> >> # Date 1378867774 25200
> >> # Tue Sep 10 19:49:34 2013 -0700
> >> # Node ID 73303bff81aaa188c0113791f0147f9e13a9eef8
> >> # Parent c821473150d2cc0c75c74a0292e9a060eb19bc36
> >> log: make file log slow path usable on large repos
> >> Running "hg log <pattern or directory>" on large repos took a very, very long
> >> time because it first read ctx.files() for every commit before even starting to
> >> process the results.
> >> This change makes the ctx.files() check lazy, which makes the command start
> >> producing results immediately.
> > For future reference, I desperately want to kill ALL of the old log code
> > in favor of the faster, cleaner revset-based version that's in the
> > graphlog code. So continuing to collect legacy log code tweaks make me
> > sad.
> > As it happens, the thing blocking dropping the old code is making revset
> > computation lazy, which would bring this and many other wins.
> Is it really possible to make all revsets lazy?
No. Some past discussion:
Most of the interesting parts of revsets can in fact be lazy.
Mathematics is the supreme nostalgia of our time.
More information about the Mercurial-devel