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