Brief article on benchmarks of Python repository with leading DVCSen
David Cournapeau
david at ar.media.kyoto-u.ac.jp
Thu Feb 12 10:02:36 GMT 2009
Nicholas Allen wrote:
>
> > The fast enough does not fly if you don't do everything else much better
> > - bzr advantages do not always outweigh its slowness. And while bzr
> > speed improves, do not forget that other projects improve as well.
>
> I know everyone works differently but the most common operation I do
> while working is committing and I find this is fast enough for me. I
> never feel like I am waiting (unless I commit to a bound branch).
I never had any problem with committing either, nor with raw diff or
status. What is slow in bzr is anything requiring history walking for
significantly sized projects.
Let me detail a bit my own workflow: I am quite involved in the release
management of several open source softwares; using svn to deal with
branches and tags is excruciating: it is slow, non intuitive (which
option should use --stop-on-copy, etc... the whole "svn is easier than
DVCS" never made sense to me, honestly). Bzr is more intuitive, but when
you need to compare branches, it is quite painful, honestly - I think
bzr is only faster because it does not need network access. Here are the
common operations in that case:
- bzr missing to log between two branches
- diff/log between tags/branches (the current bzr model of one
branch/repository also makes this more complicated than git IMO, but
let's agree this is debatable).
- blame
Two of those projects are numpy (~ 4000 rev, ~ 500 files, ~100 KLOC)
and scipy (~ 4000 rev, ~2000 files, ~500KLOC). Here are some numbers
(hot cache):
- bzr log -> ~ 2.5 sec (numpy), 4.5 sec (scipy)
- bzr log rev1 rev2 -> ~ 1.5 sec (numpy), 1.7 (scipy)
- bzr diff rev1 rev2 -> ~ 4 sec (numpy), 8 sec (scipy)
With git, all those are instantaneous. For a project like python, which
has ten times more revisions, more files... Almost any of this operation
takes almost one minute if not more. Frankly, I find bzr unusable for
projects of this size. With git, those are still almost instantaneous
for python. Even for projects like numpy/scipy, it is hard for me to go
back to bzr after I experienced git.
cheers,
David
More information about the bazaar
mailing list