Comparison with Git, Mercurial or Darcs?
Ben Finney
ben+bazaar at benfinney.id.au
Wed Nov 4 01:49:57 GMT 2009
Daniel Carrera <dcarrera at gmail.com> writes:
> I'm trying to understand what features make Bazaar different from
> other distributed VCS options. Can anyone point me to a reasonably
> updated comparison of Bazaar against other distributed VCS's?
It so happens one is in the works; it will likely be informative now
<URL:http://doc.bazaar-vcs.org/migration/en/why-switch-to-bazaar.html>.
Please note that it's deliberately *not* given a misleadingly objective
title :-)
> I am most interested in a comparison against Darcs, but not many
> people use Darcs, so I think I'll have to make do with a comparison
> against Mercurial or Git.
You might be interested in a discussion earlier this year, where a
Bazaar user tried to figure out what was going on in Darcs user's heads.
(Search for “Why Darcs users prefer Darcs over Bazaar”.)
> I would also be interested to hear any personal perspectives as to why
> you use Bazaar.
I have recently been using Darcs, and many things about Bazaar are much
better in my experience:
* It respects the recorded history of changes: When I make a change and
commit it, later changes don't threaten to alter or remove my change
from the ancestry. Changing history is possible, but is exceptional;
nothing like as common as ‘darcs amend’ or ‘darcs obliterate’ etc.
On the other hand, “oops” moments are easy to undo (‘bzr uncommit’).
* It has a simple way to put some changes aside (‘bzr shelve’) while
committing the rest, and it's easy to bring uncommitted changes from
one branch to another, if while working on the change there I decide
they make more sense here (‘bzr merge --uncommitted $OTHERBRANCH/’).
* Bundling a set of changes together, or publishing a branch, is a
meaningful operation for the recipient: the aggregate effect of a set
of changes can, if desired, be examined just as easily as it were a
single change, rather than defaulting to see each individual change.
(It is the lack of this feature, IME, that leads Darcs users to use
‘darcs amend’ so often, losing the existing detail and history of each
individual change.)
* Bazaar presents the ancestry of changes as UI: the natural way to talk
about changes is by their revision number in the ancestry, and a range
of revisions as they occurred in the branch (all commands talking
about revisions allow the same range-of-revisions specifier).
On the other hand, I can instead talk about a single change as a unit
if I choose (with the ‘--change REVNO’ option).
* Shared repositories are implemented well (and soon to be the default
in later Bazaar versions), and many Bazaar operations make it easy to
manage a collection of related branches in a repository; but none of
it is required.
* It allows for many different styles of workflow, smoothly and
compatibly and decided when necessary, not locked-in up front.
* Especially, it allows for a centralised workflow when desired (‘bzr
checkout’ or ‘bzr bind’) without administrative overhead, and without
harming distributed operation.
* Rename is a first-class operation, tracked like any other change and
maintaining consistent history of the file. This is a significant
lessening of tedium and worry, allowing for how filesystem entries
change over the course of working on a project.
* Directories — even empty ones — are first-class citizens of the
inventory, tracked like any other entry. Also lowers tedium, and
another example of Bazaar allowing for how people actually work with
files in a project.
* The interface is far smoother and more consistent: it uses readline
for command-line input, it handles Unicode properly, common options
are sensible between commands, interfaces to external tools are done
well, etc.
* It integrates well with workflow tools. Loggerhead is a good web
interface to branches, Emacs VC mode supports Bazaar branches, Bazaar
can use just about any sensible diff/merge tool, and I hear users of
other workflow tools have similar happy stories.
I'm sure with more time I would think of other advantages. That should
give you a taste, anyway.
--
\ “Oh, I realize it's a penny here and a penny there, but look at |
`\ me: I've worked myself up from nothing to a state of extreme |
_o__) poverty.” —Groucho Marx |
Ben Finney
More information about the bazaar
mailing list