[PATCH] log: make file log slow path usable on large repos

Alexander Plavin alexander at plav.in
Thu Sep 12 10:56:10 CDT 2013



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? There are functions like sort, reverse and so on, which need to get the whole input at first. Or you meant only some specific ones?

>
> --
> Mathematics is the supreme nostalgia of our time.
>
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at selenic.com
> http://selenic.com/mailman/listinfo/mercurial-devel


More information about the Mercurial-devel mailing list