[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: limit the number of log entries displayed by C-x v l

From: Giorgos Keramidas
Subject: Re: limit the number of log entries displayed by C-x v l
Date: Fri, 13 Nov 2009 08:59:18 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (berkeley-unix)

On Thu, 12 Nov 2009 18:21:56 -0800 (PST), Dan Nicolaescu <address@hidden> wrote:
> Stefan Monnier <address@hidden> writes:
> > > Logs for some big trees can be huge, the Linux one is millions of lines.
> >
> > Yes, this is a fairly serious problem.  We need to refine the
> > `print-log' backend op to be able to control it somehow. [...]
> > Maybe we should show just the first thousand or so by default and then
> > provide a button (and command) in log-view-mode to get more?
> That could work.
> It would work with the proposed backend change.
> C-x v l call would call the backend to show vc-log-show-entries, then
> the button would get the revision id for the last entry in the buffer,
> and it would then call the backend starting from that revision to
> request more entries.

I think this is a good idea :D

This is what Tortoise-Hg does by default for Mercurial clones, and it
seems to help a lot with clones that have many thousand changes.  By
limiting the changes to a shorter, one line per changeset output, it is
easy to see how displaying everything by default may slow things down.

I have a Mercurial clone converted from the current Git repository on my
laptop.  Showing around 300 changes completes in less than a second, but
anything over 30000 changes is noticeably slow:

: address@hidden:/hg/emacs/gnu$ hg short -l3
: 102087 67289587a4fe | 2009-11-10 00:54:45 +0000 | juri: (read-file-name): 
Support a list of default values
: 102086 5ee7a01ed6e0 | 2009-11-10 00:07:41 +0000 | lekktu: Fix typos.
: 102085 624cc4a874eb | 2009-11-09 22:15:41 +0000 | michael: *** empty log 
message ***
: address@hidden:/hg/emacs/gnu$ time hg short -l3 > /dev/null
:         0.572 real      0.326 user      0.244 sys
: address@hidden:/hg/emacs/gnu$ time hg short -l300 > /dev/null
:         0.742 real      0.439 user      0.301 sys
: address@hidden:/hg/emacs/gnu$ time hg short -l3000 > /dev/null
:         1.817 real      1.523 user      0.288 sys
: address@hidden:/hg/emacs/gnu$ time hg short -l30000 > /dev/null
:         13.802 real     12.692 user     0.412 sys

I think that we can display the last 300-500 commits reasonably fast,
and add a few button at the start and end of the log-view buffer.  Maybe
something like this would do?

    [Previous 500] [Previous 1000] [Previous 5000] [All]

    changeset:   637:4364dceabece
    user:        Giorgos Keramidas <address@hidden>
    date:        Sun Jul 12 06:58:02 2009 +0300
    summary:     bash: make 'sbcl --noinform' my default sbcl startup mode

    changeset:   592:0ac83b70787e
    user:        Giorgos Keramidas <address@hidden>
    date:        Tue Jun 23 22:11:39 2009 +0300
    summary:     tortoise-hg: forking is now tunable through hgrc(5)

    changeset:   572:bca0dfd0bd27
    user:        Giorgos Keramidas <address@hidden>
    date:        Sun Jun 21 03:19:02 2009 +0300
    summary:     bash: add a bit of color to my default shell prompt

    [Next 500] [Next 1000] [Next 5000] [All]

reply via email to

[Prev in Thread] Current Thread [Next in Thread]