When comparing Subversion vs Mercurial, the Slant community recommends Mercurial for most people. In the question“What are the best version control systems?” Mercurial is ranked 2nd while Subversion is ranked 11th. The most important reason people chose Mercurial is:
Mercurial is a more intuitive option than many of its competitors. The [documentation](https://mercurial.selenic.com/guide) is well organized and easy for beginners to read & understand.
Ranked in these QuestionsQuestion Ranking
Pro Clear and simple operation
It has linear history, central repository and management. Lacks too complex features, almost every developer is familiar with it, so everyone knows what to expect and how to work with it.
Pro Binary files handled efficiently
Pro File locking
Pro Free-form versioned metadata
Pro Incremental revision numbers
Gives you a better indication on how old a specific revision is without needing any more details.
Pro Easy to use
Mercurial is a more intuitive option than many of its competitors. The documentation is well organized and easy for beginners to read & understand.
Mercurial is designed to make performing operations (such as commits, clones etc.) fast.
Pro Good documentation
Mercurial documentation covers everything from revision control system basics to mercurial specific features in a short and clear way.
Pro Free and open source
Mercurial is open source and free to use.
Doesn't require access to a central repository, because each checkout is a full repository by itself.
Pro Fully python based
Pro Native Windows support
Native Windows support. No trace of cygwin or other dirty hacks typically found in competitors.
Pro Same features Git provides, but much easier to use and to understand.
The command-line interface is more intuitive, requiring much less memorization and exotic options/piping to achieve the same thing you would in git.
Pro Doesn't delete history
Mercurial makes it pretty darn hard to delete history by mistake. In Git, if you mistakenly commit to HEAD and switch to a different branch, your commit is toast. Yes, you can dig through the reflog but most users don't even know of its existence and will wish they didn't once they find out.
Pro Actively contributed to by Facebook
Mercurial is actively contributed to by the developers at Facebook as they use it for their massive source repository.
Con Branches are hell. Conflicts are hell.
Svn is hard to use on multi-topics workflows. Branches exist but are often not used because of the fear of the merge hell.
Also, conflicts are a big deal and happen on the server; it feels like you only have one try and no way to abort/retry your conflict.
Con Underlying model is totally flawed
Need to code in a rural area? Away on a retreat away from a good network connection? On a plane?
Con Lost the widely adopted race to git
Sharing code and projects in an open source world is a must and trying to working with multiple Source Code Control systems does not help the ecosystem.
Con Setup paths are hardcoded
Con Can't delete named branches
You pretty much have to use tags instead.