Not a holy war - just some salient facts

Masklinn 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
than subversion).

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
  slow
* 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
  annoying
* 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
  so far.

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 mailing list