To date I've lost code to all of them. One of them cost me an entire year's worth of work once (and refuse I to use it any longer for this reason, though I think the developers are fine people).
I believe there is an opportunity in the source control world today if someone looks beyond the proprietary nature of all of the tools built today.
What is the proprietary piece to these tools which I am alluding to?
It is the protocol. Each of these systems are tied as client and server.
I want a really good, robust, and feature rich server. I want web interfaces, I want the ability to search, and I want interoperability.
I don't really care if one developer likes subversion and another likes Bitkeeper. They can use whatever tools they want to for their work. If they want distributed, let them use a tool that allows them to do that. If they want to commit to the main server on each commit, let them use subversion. I want the server to track change sets with as much information as the client can provide.
The server is the value to me as someone who administers projects and code trees. As a developer I want to use the best tools possible.
I've thought for a while now that the database vendors never got, whether on purpose or not, the concept of inter-opt-ability. ODBC is just plain awful. It misses the point that I as someone who is shipping an application do not want to deal with drivers, and I do not want my users to have to deal with them either (the either is the key part). If the database vendors had a been a bit wiser they would have shared a protocol, similar to how browsers share HTTP, and competed on the value of their servers. Less lock in obviously, which of course is why this would never happen (though I do not rule this out for the future).
Are the open source and closed source revision control management systems only interested in user lock in? I've tried having this conversation with a few of the SCM vendors to only walk away being surprised at how much they could not get over the idea that clients other then their own could talk to their systems. The Bazaar community seem to be the only group sniffing around this problem.
The separation of client from server projects seems to be a real hurdle for developers to get over.