On Mon, Apr 13, 2009 at 2:09 AM, Michael B. Trausch <mike(a)trausch.us> wrote:
On Sun, 12 Apr 2009 15:23:02 -0500
King InuYasha <ngompa13(a)gmail.com> wrote:
Aside from Launchpad, not many people actually
like using Bazaar
because it has the worst performance of the three by far.
The performance argument is a quite old one. I certainly wouldn't say
that current bzr is as fast as current git, but I can't say that I've
ever run into any barriers performance-wise with it either. Working
with the MySQL source tree is fairly easy and not at all slow, at least
on my system.
I tried out bzr just last night when I was downloading source code from
launchpad and I see that you are right, it isn't that bad now. It's still
slower than both Mercurial and Git, but it isn't horribly slow anymore.
So far, people
have recommended like so:
Git - need to be extremely tech savvy, willing to work mostly if not
only in POSIX-based systems, worst documentation of the three
It's documentation isn't bad. There are man pages for every
sub-command of git that I've ever had need to use, though there are
many sub-commands that I have never even looked at (haven't had the
need). I've only ever used it to prepare patches for projects that use
it, though, and its branching model is a bit inflexible for at least
the workflows that I use without wasting tons of disk space.
Man pages, while easy to access and are generally good for finding out what
commands do what, are not a good example of good documentation. In most
cases, man pages do not provide examples or rationales that prove one way or
another. To substitute man pages for good documentation is a poor choice for
most people.
Mercurial - more complete docs, so easier to
learn, cross-platform,
has good performance with mix of C and Python
At least when I had looked at it, the documentation was pretty
confusing. Admittedly, though, that was a long time ago when I was
comparing bzr, git, hg, and mtn to determine what I wanted to switch to
from svn.
I will admit that awhile ago, Mercurial's docs were confusing, but they seem
to have cleaned up their act since then. On the main page you can find links
to a full fledged book, quick start and reference guides in PDF and HTML
form, and pages of info on migrating from one VCS to another.
Bazaar -
extremely cross platform, very slow compared to Mercurial
and Git, sparsely documented, or out of date documentation, slightly
strange in syntax, recommended for very small projects where
performance won't matter too much.
At least since I've used it, the docs have always been more than
sufficient. More importantly, I've only ever had to reference the
documentation once or twice---the feel of bzr is pretty intuitive
coming from Subversion, and I've never had a problem with performance.
I frequently use it against Subversion servers, as there are a great
many of those in the areas I work with. Using it with MySQL, Mono, and
MonoDevelop, I've not had any complaints on performance, either.
A quick look at the Bazaar website shows that they have added some more docs
and reorganized the ones they did have before, so it is at least on par with
Mercurial. Frankly, I was surprised it was as bad as it used to be,
considering Canonical uses Bazaar for Launchpad, and Canonical makes it its
mission to make "open source for human beings." I believe one of the aims of
Bazaar was to make it easy for people coming from subversion to use, so they
tried to adapt SVN's command style for Bazaar. I don't really have a problem
with that, but SVN is slightly strange to me, and CVS is just horrible; so I
still agree with the advice I was given on that point.
That was the advice I got when I was figuring out
a DVCS to use for
the Enano CMS Project. Based on that, it was rather easy to throw out
Git and Bazaar.
It would be. I can say that when I checked out the four I listed, it
was a pretty close decision between git and bzr. Bazaar wound up
winning out because my clients used Subversion (many of them have
migrated to Bazaar internally for various reasons) and working with the
Subversion workflow, as well as other less centralized workflows, was
quite easy, and the branching model was rather enjoyable, IMHO. Had
Bazaar not existed at the time, I would've chosen git, more likely than
not. It is more difficult to work with, IMHO, but it was still the
only other option that stood out as viable to me.
I wouldn't be too unhappy with Bazaar, if things have truly improved since I
tried them out, but I still think Mercurial is a better choice. But, your
rationale is sound, and based on your needs, Bazaar was probably the best
choice.
A note; I'd checked all of these projects out in mid-2006 or so. A
good lot has changed in both bzr and git in the last 3 years, so I'd
seriously try them all before making a decision. The only one that I
know of that I would _still_ stay away from is mtn, but only because
the cost of cloning is completely terrible and the CL interface is
harder (at least for me) to grasp than git's.
--- Mike
Two things:
1) Bazaar-NG (the current Bzr) was not announced until 2007, and did not
have a release until Dec. 14, 2007. Still, Bazaar did exist in 2005 and
2006, and it was shortened to Baz I believe. And, Bazaar had to be good
enough for the GNU Project to bring it under its umbrella, so I'm not
discounting it totally.
2) Git is still a pain to deal with. I don't like using Git because of its
strange and redundant commands, it just doesn't make sense to me. Plus,
ReactOS is a Win32 project, and no matter how much people would like it to
be otherwise, it means Git cannot be a primary VCS for ReactOS until they
come out with a fully native client with performance similar to the UNIX
one, without going through a POSIX layer to mess stuff up. Nobody wants to
install a full blown POSIX system on top of Windows unless they absolutely
have to.
In conclusion, I believe the only suitable DVCSes would be either Bazaar or
Mercurial. But I would much rather see Mercurial than Bazaar :)