Usage discussion from the GNU Emacs project.

Óscar Fuentes ofv at wanadoo.es
Mon Nov 30 01:05:58 GMT 2009


Ian Clatworthy <ian.clatworthy at canonical.com> writes:

> Óscar Fuentes wrote:
>
>>> What operations are a problem?
>> 
>> log, annotate.
>
> Attached are the benchmark figures I see running bzr-usertest with bzr's
> latest trunk and Emacs rev 98788. $file in this run is ChangeLog. As you
> can see, many log operations are fast enough (under 2 seconds). We do
> need to improve log speed on a file or directory though.
>
> I have 2 patches for log performance I can dig up:
>
> * one makes 'log everything' 5-10% faster by slight changes to how
>   strings are built before outputting them
>
> * one makes 'log file' show output immediately if the history
>   of the file is relatively flat (vs bushy because of changing in
>   lots of merges). In some cases, it makes the overall time slower
>   but it has the advantage of immediately displaying something over
>   waiting until it's calculated the full revision graph.

This one is very interesting. First, the standard emacs interface for
version control systems can invoke `bzr log' asynchronously. Second,
most of the time people is interested on the recent part of log. The
Emacs maintainers just decided to put a user-configurable limit on the
number of revisions that `log' outputs.

Coming from CVS, the Emacs history is very flat.

> Is ChangeLog a suitable file to be using to benchmark 'bzr log $file'?

I see no relevant time difference between ChangeLog (which has less than
881 revisions) and lisp/ChangeLog (which has 16700). Seems that the
operation requires almost the same time regardless of how much history
the file has and even how old the file is.

[snip]

BTW, Bazaar's `annotate' is significantly faster than git's. But don't
rejoice: this just means that you need to be more desperate to use `git
annotate' than `bzr annotate' :-)

-- 
Óscar




More information about the bazaar mailing list