Echoing a post: bzr vs. git

David Cournapeau david at ar.media.kyoto-u.ac.jp
Fri Oct 31 06:28:03 GMT 2008


Martin Pool wrote:
> It's an interesting and thoughtful post, if also a bit disappointing to read.
>
> Certainly a year or two ago these comparison threads would turn into
> rancorous flamewars all over, and I'd ask that that does not happen
> here.  The point of this list is to help people with bazaar, and help
> develop bazaar.

Oh yes, please, no flame war, that's really not the point of the
article. I would go as far as marking my article as private if it does.

The context is that for the projects numpy and scipy, I and several
other people are a bit tired of dealing with svn, in particular its
awful merging capabilities, and most of us were familiar with bzr; I
started using git a few months ago and could not articulate why I liked
it better than bzr when I met in person with those other contributors.
So I wrote this as a mental exercise, and because most git vs bzr
articles keep talking about speed, which was not the main thing for me.
Also, most people who talk about how much better git is do not know
anything about bzr most of the time. I thought it would be useful to
have an opposite point of view (I have been using bzr for 2 years and
half now, since bzr 0.8).

>
> bzr-svn seems to generate really mixed experiences: some people are
> rapturously happy with how it lets them get bzr features (better
> merging, offline commits, bzr send) on top of svn very transparently.
> Others hit problems, particularly it seems in getting the right
> versions of everything, which perhaps goes with the territory of
> hooking in to both libsvn and bzrlib.

I did not go into great length about bzr-svn; I spoke about it because
that's what pushed me to look at the alternatives. I would consider
myself familiar enough with compiling software such as the wrapper issue
was not that big of an issue - for me. I did not mean to criticize
bzr-svn; I think it is a very nice project, but the problems I got with
it are strongly linked to the whole bzr model. I think bzr-svn is 'too
smart' in a way, like bzr: git-svn does not try to do much. It only
import the data into git, and you can push back. There is no branch
support, it does not even attempt to be smart. But in the end, it is
easier *for me* to use.

>
> The architectural choice between extension through a programming
> language API vs shell scripts is an interesting one, applicable to
> many projects, and deserves a longer essay than I can write this
> afternoon.  A shell-oriented interface is nice for ad-hoc scripting;
> but there are downsides including complicating the user-facing
> interface with things not intended for users (look at the number of
> git manpages that say "don't use this command); making it harder to
> evolve that interface; problems with error reporting (which you
> mention) and the fact that this interface style basically does not
> work on Windows.  On the other hand maintaining a stable api in Python
> ("everything is permitted") with monthly releases has not been a walk
> in the park, and there are definitely things where writing a couple of
> lines of shell would be better than writing a few lines of Python.

Yes, that's not an obvious choice, and it depends on people. Ideally,
both should be possible, but that's an almost inaccessible goal. I
understand the plugin API advantages, but I like Unix, and I find Unix
easier to use than windows. That's not something which apply to
everybody, even in the context of source control system (I would not use
git if I had to collaborate with other researchers, for example). I
can't articulate this very well, but there is something about bzr which
feels like windows to me (I am really talking about the philosophy of
the OS against its users here, nothing else :) ). That's why it is not
about git being better than bzr, but about git being more natural to me
than bzr.

>
> Using a shared repository per project in bzr is definitely the right
> thing to do.

Oh yes, I did not mean you should not use it, but that git branch
handling felt much more natural to me once I got used to its branching
model (which is not the hardest thing to get in git).

> We keep getting new users coming along saying they enjoy, understand
> and appreciate Bazaar, and on the other hand seeing patches posted
> that give good improvements - like for instance Robert's new
> compression format compared to git.  So, I'm still finding it
> interesting and worthwhile to work on.

I don't think bzr is worthless. I still use it to keep my academic
papers under revision control, for example. Because when I am writing
papers, I am not in "be ready to deal with unix idiosyncraties", and I
want to concentrate on the research. When I am coding, where my brain
has to deal with all those details anyway, I don't mind.

cheers,

David




More information about the bazaar mailing list