Emacs Bazaar Repository II
Jason Earl
jearl at notengoamigos.org
Wed Oct 22 22:40:14 BST 2008
John Arbash Meinel <john at arbash-meinel.com> writes:
> Jason Earl wrote:
>> Christian Faulhammer <opfer at gentoo.org> writes:
>>
>>> Hi,
>>>
>>> Daniel Clemente <dcl441-bugs at yahoo.com>:
>>>
>>>> The operation I use most is „log“: to see what's new, or if
>>>> something was included or not, or when, or who did what when, etc. I
>>>> have tested this second repository and also the first one. I used
>>>> today's bzr (rev. 3788) and did several successive tests until the
>>>> results stabilised.
>>> Which bzr version are you using? 1.8 improved log performance
>>> according to the release notes.
>>>
>>> V-Li
>>
>> I'm using bzr.dev and I get similar numbers for trunk on the emacs
>> repository. Of course, this is on an underpowered laptop, but I still
>> have a hard time waiting over a minute for log information.
>>
>> time bzr log > /dev/null
>>
>> real 2m7.347s
>> user 1m52.223s
>> sys 0m1.152s
>>
>> Even worse, just getting the last 10 revisions is also ridiculously
>> slow.
>>
>> time bzr log -r -10.. > /dev/null
>>
>> real 1m5.250s
>> user 0m59.520s
>> sys 0m0.320s
>>
>> I didn't want to pile on with this particular complaint, as I know that
>> it has been brought up before, but bzr log is really really slow on
>> repositories with as many revisions as Emacs has.
>>
>> I really like bzr's log output, as it makes the branch merging very
>> clear, but I really wish I knew of a sensible way to just get the last
>> few changes on a branch.
>>
>> Jason Earl
>>
>>
>
> Try "bzr log --short -r -10..-1 >/dev/null"
Oh yeah, that's the stuff. That finished in less than a second. More
importantly (to me anyway) straight bzr log --short starts spitting out
information to the console immediately. Now I can do
bzr log --short | less
And see the most recent changes instantly. I think that it is time for
me to create an alias. The command still takes a while to finish (1m28s
on my crappy laptop), but I don't care, because the bits I want appear
immediately.
> It should be surprisingly faster. I've been working with Vincent a
> little bit to try and make our log layout and numbering not require
> reading the whole ancestry.
--short is a lot better. I miss the fancier layout a little, but not
enough to want to go back to waiting 2 minutes.
> Also, you might try using "--development2" format. At least if you want
> to see an interesting comparison. Specifically, --development2 changes
> the index format, which makes certain parts of "load-the-whole-ancestry"
> perform a lot better. Obviously the best fix is to get rid of the
> O(ancsetry) operation, but you can do some things to mitigate it in the
> short term.
Actually, the repository I am testing is already in development2 format.
jearl at jearl-laptop:~/projects/emacs/trunk$ bzr info
Repository branch (format: development2)
Location:
shared repository: /home/jearl/projects/emacs
repository branch: .
Related branches:
parent branch: bzr://bzr.notengoamigos.org/emacs/trunk/
I probably should have mentioned that when I forwarded my "benchmarks",
but to be honest, I forgot that I had upgraded :).
> (With a recent bzr.dev or I believe bzr-1.8, you should be able to copy
> your existing repository and just "bzr upgrade --development2")
I updated my bzr to the most recent bzr.dev before testing. I'd
forgotten that I had already updated the repository format, but I've
been using bzr long enough to know that a lot of progress has been made
in a ridiculously short time. If your version of bzr is even a month
old then you are basically using a relic :).
> If you are willing to do it, it would be interesting to see the
> result.
Unfortunately, I'm pretty sure my original benchmarks included your
improvements. The normal log command is painfully slow on the emacs
repository. Even worse, it doesn't even start spitting out text
forever. When using the --short flag it still takes over a minute, but
since there is output immediately it doesn't seem bad at all.
Jason Earl
More information about the bazaar
mailing list