When comparing Perforce 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 Perforce is ranked 8th. 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 Multi platform availability
Pro Central repository/server
There's a central repository and a clear path/protocol how to reach it.
Helix Core for GIT large files is free for up to 5 users.
Pro Solid workflow for binary files
Perforce has shown itself as very capable when it comes to managing binary files. That's why it's still the go to version control system in game development.
Pro GUI and Visual Studio integration available
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.
Doesn't require access to a central repository, because each checkout is a full repository by itself.
Pro Free and open source
Mercurial is open source and free to use.
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.
Users can activate plugins to provide additional features.
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 Native Windows support
Native Windows support. No trace of cygwin or other dirty hacks typically found in competitors.
Pro Fully python based
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 Closed Source
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.
Branching becomes a pain due to its non-distributed model.
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 Feels limited from a Git user's perspective
E.g. it does not offer the ability to rebase/force-push your own feature branch.