[OT] Comparing VCS tools
Ben Finney
ben+python at benfinney.id.au
Tue Apr 26 22:45:22 EDT 2011
Tim Chase <python.list at tim.thechases.com> writes:
> Bazaar (bzr)
> ============
> launchpad.net popular for hosting
> Pros:
> - some Ubuntu interactions (such as launchpad) easier
> - a rigorous focus on correctness
> - written in Python (with a small optional bit of C)
> - easy-to-use interface (CVS-ish)
> - good cross-platform support
- Launchpad is free software (so anyone could run their own instance to
host Bazaar repositories).
- Merges preserve all revision data, but history displays don't show
merged revisions by default. (This obviates most of the need for
history-altering commands in other VCSen to “tidy up” the revision
data: it's tidy already by default.)
- Very smooth interaction with “foreign” VCS repositories, especially
Subversion.
- Supports a wide range of workflows, without forcing peers to the same
workflow.
- Especially: Supports “centralised” (Subversion-style) VCS workflow
without losing any of the distributed advantages.
- Treats files, and filename changes, as first-class citizens in the
revision data. (Git and some others use fallible heuristics to figure
those out after-the-fact instead of recording the data.)
> Cons:
> - was slow, though I understand they've worked on improving this
Right, that's not a count against Bazaar for at least the last several
versions (since 2009 at least). Bazaar is easily fast enough for
anything people use, say, Mercurial for.
Cons:
- Repository formats were changing frequently for a while, leaving a
legacy of confusion (fixed now, but the confusion is still a black
mark).
- Limited developer base, because of Canonical's community-hostile
“contribution agreement” requirements.
- Currently only one big public full-featured hosting of Bazaar
repositories: Launchpad.net.
- The most advanced web UI to browse Bazaar repositories, “loggerhead”,
is somewhat lacking compared to the ones at Git and Mercurial hosting
sites.
> Mercurial (hg)
> ==============
> BitBucket is popular for hosting
> Pros:
> - speedy
This isn't a significant advantage for Mercurial against Git (which is
much faster) or Bazaar (which is easily as fast as Mercurial).
> - fairly compact repositories
Again, this isn't a significant advantage for Mercurial over either of
Git or Bazaar.
> - chosen by Python as the repository of choice
As I understand it, the decision was down to Bazaar or Mercurial, which
were each close enough in technical and workflow assessment that the
decision was made on personal preference. Fair enough, and it does give
another reason *now* to use Mercurial, but not due to any particular
advantage in Mercurial.
> Cons:
> - no biggies that I've found
- (Anecdotal) Merge algorithm sometimes fails catastrophically.
- Merged revisions aren't hidden, leading users to alter history.
> Protocols:
> - http
> - ssh
> Git (git)
> =========
> GitHub is popular for hosting
Unlike GitHub, Gitorious is a free-software Git hosting provider.
> Pros:
> - a *lot* of popular projects use it (Linux kernel)
> - fast
> - fairly compact repositories
> - good documentation (though somewhat scattered)
Hmm. Can't really overcome the rampant NIH syndrome: there is a lot that
shouldn't *need* so much documentation if the interface were better
designed from the start. I wouldn't count this as a pro for Git.
> Cons:
> - interface diverges from the "CVS standards"
- Terminology and command-line API gratuitously arcane (I'm reminded of
GNU Arch, *shudder*).
- Merged revisions aren't hidden, leading users to alter history.
> So that said, I've become a Mercurial user because the interface was
> close to SVN which I used previously, and it was speedy on my older
> machines. If bzr has come up to comparable speed, I'd be game to probe
> it again.
I recommend doing so.
--
\ “If I haven't seen as far as others, it is because giants were |
`\ standing on my shoulders.” —Hal Abelson |
_o__) |
Ben Finney
More information about the Python-list
mailing list