Git: tool that supports many low-level customization to suit different needs.
Mercurial: has distributed version control feature like git, but commands are similar to the centralized version control SVN, is easier to learn than git and does not provide low-level funtions for hacking like git. (Git vs. Mercurial is like Linux vs. Mac).
Despite that glaring flaw, the rest of hg is excellent. It functions almost identically to Subversion in the commands that it shares, and the new concepts – branching, merging, etc. – are easily learned and intuitive. Whereas I’m still learning how to do relatively basic things in git, I learned pretty much all of hg’s functionality in about a day. If you’re familiar with Subversion, transitioning to Mercurial should be a piece of cake – the functions you’re familiar with will be there, and the new functions are easy-to-learn and well-documented.