i'd like to know why people are using what they are. did you pick git because you just recently started using version control or was there really something you needed in it that made you switch?
i've been using cvs for about 10 years now and have no reason to switch to anything else. it does what i need without any extra fluff, all my projects are in cvs, and the majority of the projects i contribute to use cvs.
We were using svn for a while, but micromanaging the individual files turned out to be too tedious for me to introduce to our group.
git add .
git commit -a
yes, it's two commands but in return git will automatically find new files, internally delete files you have deleted, and even automatically find renamed files (under most conditions).
I don't have a great argument about why we chose git over mercurial, it seemed like the right choice. But I can tell you that git is a lot better than svn for our purposes.
I find it somewhat funny about the complaints of git being difficult to use. Personally, our team found svn difficult to use due to having to micromanage moves adds and deletes.
edit: also, not having a bunch of .svn directories peppered all over your directory structure is nice, just one .git directory at the top. You can move directories in and out from other locations without worrying about anything.
Using mercurial -- it and git seem significantly better than the rest, but when I recently test-rode them both, mercurial felt like it worked better cross-platform, and the overall design felt cleaner. Git would be my second choice, and I'm sure github and the network effect will do a lot to popularize it.
(I've read several blog posts in which people try git and are absolutely thrilled, but in almost all cases they were previously using CVS or SVN.)
FWIW, I had been using Monotone for a while, but mercurial seems quite a bit simpler in day to day use.
I use a combination of git and Subversion. SVN for the main repo that is shared between developers (with many developers working at once the lack of atomic commits really sucks), and git as my own offline versioning system. The code that I write tends to go through several iterations, and I'm loathe to commit anything to SVN until things work well enough to please me. Bad code should never make it into your prod repo, but I'm not a fan of rewriting/deleting mass chunks of code without SCM to back me up.
Ok, this convinced me to at least give git a try. I made the move to SVN from CVS years ago to be able to rename / move stuff in the repo, but the offline version control would keep me from keeping a bunch of updates in a branch uncommitted while I do a major push.
My current offline version control system has been leaving all the files open in TextMate to take advantage of undo/redo. (Horrible I know).
If you just want the offline aspect, you can use svk (http://svk.bestpractical.com/view/HomePage). I also switched to git for that (and stayed because I liked it better in a lot of other respects), but I found out afterwards that you can use svk to use svn offline.
I switched from CVS to SVN because I needed to rename a bunch of directories, and that's so incredibly painful in CVS that I might as well start a new repository.
I switched from SVN to git because I needed to work offline for a week, so I gave git a try (initially, I had my project versioned under both systems) and liked it so much I stuck with it.
I introduced Bazaar at my new research lab, with good results. Our requirements were:
1. They're scientists who need to do some programming, rather than programmers who need to do some science, so the command line is acceptable but confusion and complexity are not.
2. Remote hosting is not kosher. Dunno, there are rules, apparently there was a bad experience once and the NIH got involved.
3. Everyone has their own work to track, but project ownership can be fluid. Another guy should be able to seamlessly take over one of my projects without losing the history, and with 30 seconds or less of over-the-shoulder explanation on how to do it. If an operation requires significant manpage investigation, they'll probably get impatient and just use scp.
4. None of the machines is expected to be on all the time. The network will almost always be available, but we all have laptops, too, so offline work ought to be possible.
5. Speed isn't a big issue; our machines are suave and everything's on a LAN.
Subversion would be OK if we had a designated server that's always on. But we don't. Git has the low-level design figured out a little better than Bazaar, but the plumbing commands are confusing and I couldn't figure out how to make a shared repository temporarily act like it's all centralized, and I worry that a Windows user might come in and spoil the party.
As far as features go, git, hg, bzr and darcs borrow from each other like crazy; the differences are mainly in developer priorities and culture. Bazaar's team cares about documentation and usability above all else, which is what I care about too, here, so that's what I went with.
Using bzr: our development is done in Python, so it's handy to be able to a) modify things if we need to and b) bundle bzr with our company's python install.
It was the first distributed VCS I have used. I highly suggest it for personal or small projects, as it supports "dumb storage" and thus you can host a repo anywhere you have ftp or sftp access. It is also handy for working around annoying firewall restrictions where you can't really checkout code the way a centralized system does.
git because I was able to introduce it gradually, due to its great svn integration. We just switched to it fully last week.
I love DVCS because I get to keep the code on my computer version-controlled, and the power of branching, merging, and cherry-picking is awesome once you get used to it.
For new projects I'm using git rather than subversion. I normally develop on my desktop system, but when I'm on the go I use my laptop. Subversion isn't useful for that kind of scenario if you don't have constant internet/network access. With git I can do commits, look at the history, etc. even when I'm on my laptop and offline. (you can keep copying the whole repository with svn but that pretty much defeats its purpose)
I'm pretty new to git though, and I haven't even touched the more advanced features.
using subversion over cvs because of repository revision numbers, renaming of files.
using git over subversion because of sane branching / merging / rolling back, history tracking, SPEED, increased redundancy (everybody is backing up the repo!) and local commits.
i've been using cvs for about 10 years now and have no reason to switch to anything else. it does what i need without any extra fluff, all my projects are in cvs, and the majority of the projects i contribute to use cvs.