When comparing Mercurial vs Perforce, the Slant community recommends Mercurial for most people. In the question“What are the best version control systems?” Mercurial is ranked 2nd while Perforce is ranked 6th. 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 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.
Pro Multi platform availability
Pro GUI and Visual Studio integration available
Pro Central repository/server
There's a central repository and a clear path/protocol how to reach it.
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.
Con Closed Source
Branching becomes a pain due to its non-distributed model
Con Does not work offline
You must be connected to the internet to do anything useful. Although, there is a Git <-> Perforce bridge that sorta solves the problem.