BDFL decision of Python's DVCS

Geoff Bache geoff.bache at pobox.com
Sat Apr 4 23:15:38 BST 2009


As an ongoing user of both Mercurial (because my employer chose it) and Bazaar
(because I chose it), I thought I'd also give my impressions here.

I work entirely in Python but I regard correct and easy renaming as a key
feature. Python also does package structures and you never get them or module
naming right the first time. I must say I find Mercurial's handling of renaming
a complete pain, and the tool gives the impression that it expects you to do
this only rarely if at all. For example something as basic as getting a diff
across a rename is unintuitive and buggy.

I was amazed to read that Mercurial fitted Subversion workflow better. I've
found the complete opposite. Mercurial forces you to work in a distributed way
the whole time, with local commits and updates, so if you want to work directly
against a central repository, everything is a 2-stage process:
commit + push and then pull + update. Thing is, local commits are an invaluable
possibility but I don't actually want to do them the whole time, especially
working test-driven. I find Bazaar's model of having branches+checkouts and
being able to switch them dynamically as needed to be much friendlier to a
long-time CVS user who mostly wants to publish code when it passes the tests.

And then there's testing. I discovered today that Mercurial has 326 tests
compared to Bazaar's 17000-odd. This seems a striking contrast... I've found
(what I consider to be) 5 Mercurial bugs in 2 days of intensive usage so maybe
it has some practical results. Has anyone studied general bugginess? 326 seems a
very small number of tests to me for the size of the project. (Though I must say
both Mercurial and Bazaar feel quite bleeding-edge, in terms of how frequently I
run into python stacks, general bugs and "gotchas")

At the end of the day, the decision doesn't entirely surprise me though. People
regularly point out that Bazaar is still slower and changes its default
repository format several times a week, and I can't really honestly disagree :)

If it's anything like the decision process at my workplace was, you have a bunch
of people who know Bazaar on one side, a bunch who know Mercurial on the other
side, and nobody who knows both in practice. Everyone has a strong vested
interest in the tool they know being adopted so they don't have to become a
clueless newbie again. In the end "social factors" and simple headcount on both
sides will decide the issue.

Geoff





More information about the bazaar mailing list