I've never heard of mercurial until this post, I've been using git for version control and it does the job really well. To those who use mercurial over git, why?
[1]: https://www.mercurial-scm.org/wiki/ChangesetEvolution
combined with a large set of tools to tweak commits (i mostly use absorb, amend, split, fold, uncommit, pick), it is very nice to work with if you value a clean history.
there is also the very powerful revset DSL for finding revisions and/or files.