Not a holy war - just some salient facts
masklinn at masklinn.net
Fri Apr 9 04:18:08 CDT 2010
On 9 Apr 2010, at 10:28 , Adrian Buehlmann wrote:
>>> But it seems a lot of users never check their repos. Otherwise I can't
>>> explain why anyone ever would use bzr.
>> So, are you saying it has other problems, making it a poor choice?
> I can't tell if it has other problems or not. I stopped looking at it
> because of the poor bzr check performance, because reasonable verify
> performance is a must have for me before even starting to consider using
> a DVCS.
In my experience (been using bazaar since November because employer uses it,
previous experience was mostly with mercurial and darcs with a bit of git)
the slowness you experienced with bzr check exists throughout the software
(on some operations, including local-only, bazaar manages to feel slower
bazaar just feels slow to and through, and I'm talking bazaar 2.0 & 2.1
using the latest and greatest repository format (2a). It was apparently
even worse before.
And — again in my experience — bazaar does have many other issues:
* though that's a matter of taste, I'm not fond of bazaar's log format
(only displays the "main" branch of development with the merge commits,
merged branches are hidden by default, you have to use a special switch
to display them and the commits on the merged branch are going to be
indented relative to the left-hand column. Doesn't look like a linear
log at all, but doesn't look like graphlog either). It's also awfully
* bazaar relies on a linear integer index for its revision numbering
(much like hg's local-only revision numbers) and then adds some plaster
to try to make it hold (fwiw that doesn't work). Results in ugly and
misleading revision numbers you can't share. And then (a common pattern
in bazaar) they added stuff on top of this to try to unbreak it, in
this case a revision id which is a weird concatenation of the
committer's username, a timestamp and a random-looking string)
* bazaar's wire format is both dumb and verbose, it's not rare to get a
megabyte of data for a 3-lines-patch revision. That also means creating
clones from remotes is *very* slow.
* speaking of patches, bazaar deals very badly with creating or applying
patches, there are some commands for that in `bzrtools` (some kind of
weird/huge "grab bag" plugin full of commands not really related to
each other) but they're not very good
* code quality and behavior is inconsistent (for instance `bzr serve` will
not output any error under any condition, even when you're not in
any kind of serveable directory)
* the lack of local branches (multiple heads within a clone) is very
* the addons system seems far less flexible than hg's, and there are very
few useful bundled addons
* the bazaar community seems to love using weird terms and adding lots of
complexity on simple concepts (e.g. bazaar loom, which I thought was
supposed to be an mq equivalent, I didn't actually manage to understand
what it was about because I mostly stopped reading when the doc said
it was going to migrate my repository format)
* very low support for history edition. I know the hg community isn't
as big on history edition as git's, but mq and histedit are serviceable,
fast and generally work well when one needs more than basic rebasing.
I haven't managed to find any such history-edition tools for bazaar
I'm sure there are others, but I have to go back to work. Anyway all in
all after ~5 months working with it I'm *not* fond of bazaar compared
to the other DVCS on the "market".
Your mileage may vary, I hear others have less issues with it, I don't
know what experience they have with git, hg or darcs.
And launchpad, which is usually used along with bazaar, would deserve
a full book all on its own.
More information about the Mercurial