Bet bitkeeper regretted that decision...
You can rewrite history, fix your mistakes, and generally do whatever you want. When merging, git isn't picky, either: if the code looks the same, it is the same.
In-place branching is hugely useful, just switch your tree in an instant (your editor should update the contents of your files automatically). So is the stash. Overall, it's just a useful tool that doesn't try to teach you "how things should theoretically be done", and never says "well in order to get X, you should have done this a long time ago".
The standard CLI UI is admittedly a weak-point, but it does not appear to have slowed adoption...
Is this an example that goes against the common advice to launch an MVP fast to test the market (and then keep on improving)? It seems that the advice is valid only when there is nothing for the customer to compare the to-be-launched product to. If competing products end up launching at around the same time as yours, the advice may turn its head on you.
tla was forked into baz (previously Bazaar), and bzr (previously Bazaar-NG) was a rewrite taking into account lessons learned from tla/baz. Darcs is yet another DVCS inspired partly by Gnu Arch.
So while the explosion of new DVCS around 2005 can definitely be traced back to the Bitkeeper incident, I believe the seed for modern DVCS was laid a bit earlier, in 2001, with Tom Lord's Arch. I think Gnu Arch/tla is to be credited with originally introducing many of the concepts of distributed version control.
Of course, if anyone knows of earlier history on distributed VCS or a VCS that isn't in some way a spiritual successor to TLA I would be quite interesting in knowing that.
Tom Lord does deserve much credit for DVCS concepts, but so do Larry McVoy (Bitkeeper) and Graydon Hoare (Monotone).
[1] http://www.catb.org/esr/writings/version-control/version-con...
At this stage, isn't a "bzr vs. git vs. hg" question at all. It's just "look, it's a patch".
I think this ease and ability to work losslessly with plain text patches gives git a clear advantage over bzr.
This functionality makes it really easy for people who don't know git to interoperate with people who know it.
Lossless interoperability with plain text is a key Unix principle (see TAOUP) and something that bzr lacks.
With bzr, everybody involved with a project must use bzr. OTOH, a project that uses git can work more easily with a whole spectrum of people since sending a simple patch to a mailing list provides exactly the same ease of workflow to git-using developers as a complex multi-stage set of changes that is heavily reviewed and modified before being committed.
(I don't know hg well enough to understand how it fits in here)
What I'm talking about is lossless integration with entire patch sets in the form that git does it with format-patch, send-email and am.
The real demand was for a way to publish code and collaborate, and GitHub provided a truly innovative approach (the social aspects, encouraging forking and pull requests) that was miles better than the alternatives (SourceForge was already in decline, Google Code didn't have the social/forking/pull request aspects). I think they would have been successful with any distributed VCS. I always preferred Git, so I'm happy they chose Git, but I think that if they had chosen Hg, we'd be talking about how Hg won the popularity war instead of Git.
BitMoover Inc provided free BitKeeper licences to the Linux kernel devs. This was unpopular because of the non-FOSS nature of Bitkeeper. Andrew Tridgell [1] at OSDL became frustrated with some aspects of the software and reverse-engineered its network protocol to develop his own limited client. This caused BitMoover to revoke the licences used by OSDL, which in turn provoked Linus Torvalds (who was at OSDL) to develop the early version of Git. [2]
github also contributed to amplify the adoption as its makes it really easy to use (even thus people generally use git in a non-distributed way with github)
(i do prefer git in usage, tho, but thats subjective i suppose)
If Hg were as good at branching and rebasing, I'd reconsider it.
btw, anyone know of a python command line client for git? I just keep finding stuff for programmatically using git and that's not what I want.
(gitless may possibly be what you want)
Git and Mercurial were Linux affiliated.
In the end, when apps are similar and don't have fatal flaws, it comes down to a popularity contest.
The term is "adaptive radiation", of which the Cambrian explosion is a prominent example. (Unrelated but awesome note: search for "edicarian biota" to look at some body plans that might have won, but didn't.)
Missing manpower: just glance at the mailing list archives.