Need advice about which tool to choose?Ask the StackShare community!
Mercurial vs SVN (Subversion): What are the differences?
Developers describe Mercurial as "A distributed version control system". Mercurial is dedicated to speed and efficiency with a sane user interface. It is written in Python. Mercurial's implementation and data structures are designed to be fast. You can generate diffs between revisions, or jump back in time within seconds. On the other hand, SVN (Subversion) is detailed as "Enterprise-class centralized version control for the masses". Subversion exists to be universally recognized and adopted as an open-source, centralized version control system characterized by its reliability as a safe haven for valuable data; the simplicity of its model and usage; and its ability to support the needs of a wide variety of users and projects, from individuals to large-scale enterprise operations.
Mercurial and SVN (Subversion) belong to "Version Control System" category of the tech stack.
"Easy-to-grasp system with nice tools" is the top reason why over 15 developers like Mercurial, while over 17 developers mention "Easy to use" as the leading cause for choosing SVN (Subversion).
SVN (Subversion) is an open source tool with 326 GitHub stars and 118 GitHub forks. Here's a link to SVN (Subversion)'s open source repository on GitHub.
According to the StackShare community, SVN (Subversion) has a broader approval, being mentioned in 77 company stacks & 58 developers stacks; compared to Mercurial, which is listed in 26 company stacks and 16 developer stacks.
SVN is much simpler than git for the simple stuff (checking in files and updating them when everyone's online), and much more complex than git for the complicated stuff (branching and merging). Or put another way, git's learning curve is steep up front, and then increases moderately as you do weird things; SVN's learning curve is very shallow up front and then increases rapidly.
If you're storing large files, if you're not branching, if you're not storing source code, and if your team is happy with SVN and the workflow you have, I'd say you should stay on SVN.
If you're writing source code with a relatively modern development practice (developers doing local builds and tests, pre-commit code reviews, preferably automated testing, preferably some amount of open-source code), you should move to git for two reasons: first, this style of working inherently requires frequent branching and merging, and second, your ability to interact with outside projects is easier if you're all comfortable with git instead of snapshotting the outside project into SVN.
Pros of Mercurial
- A lot easier to extend than git18
- Easy-to-grasp system with nice tools17
- Works on windows natively without cygwin nonsense13
- Written in python11
- Free9
- Fast8
- Better than Git6
- Best GUI6
- Better than svn4
- Hg inc2
- Good user experience2
- TortoiseHg - Unified free gui for all platforms2
- Consistent UI2
- Easy-to-use2
- Native support to all platforms2
- Free to use1
Pros of SVN (Subversion)
- Easy to use20
- Simple code versioning13
- User/Access Management5
- Complicated code versionioning by Subversion3
- Free2
Sign up to add or upvote prosMake informed product decisions
Cons of Mercurial
- Track single upstream only0
- Does not distinguish between local and remote head0
Cons of SVN (Subversion)
- Branching and tagging use tons of disk space7