Mercurial vs SVN (Subversion)

Need advice about which tool to choose?Ask the StackShare community!

Mercurial

213
193
+ 1
106
SVN (Subversion)

750
568
+ 1
41
Add tool

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.

Decisions about Mercurial and SVN (Subversion)
Kamaldeep Singh

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.

See more
Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of Mercurial
Pros of SVN (Subversion)
  • 19
    A lot easier to extend than git
  • 17
    Easy-to-grasp system with nice tools
  • 13
    Works on windows natively without cygwin nonsense
  • 11
    Written in python
  • 9
    Free
  • 8
    Fast
  • 6
    Better than Git
  • 6
    Best GUI
  • 4
    Better than svn
  • 2
    Hg inc
  • 2
    Good user experience
  • 2
    TortoiseHg - Unified free gui for all platforms
  • 2
    Consistent UI
  • 2
    Easy-to-use
  • 2
    Native support to all platforms
  • 1
    Free to use
  • 19
    Easy to use
  • 13
    Simple code versioning
  • 4
    User/Access Management
  • 3
    Complicated code versionioning by Subversion
  • 2
    Free

Sign up to add or upvote prosMake informed product decisions

Cons of Mercurial
Cons of SVN (Subversion)
  • 0
    Track single upstream only
  • 0
    Does not distinguish between local and remote head
  • 6
    Branching and tagging use tons of disk space

Sign up to add or upvote consMake informed product decisions

- No public GitHub repository available -

What is Mercurial?

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.

What is SVN (Subversion)?

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.

Need advice about which tool to choose?Ask the StackShare community!

Jobs that mention Mercurial and SVN (Subversion) as a desired skillset
What companies use Mercurial?
What companies use SVN (Subversion)?
See which teams inside your own company are using Mercurial or SVN (Subversion).
Sign up for StackShare EnterpriseLearn More

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with Mercurial?
What tools integrate with SVN (Subversion)?

Sign up to get full access to all the tool integrationsMake informed product decisions

Blog Posts

Mar 4 2020 at 5:14PM

Atlassian

GitBitbucketWindows+4
3
736
What are some alternatives to Mercurial and SVN (Subversion)?
Apache Storm
Apache Storm is a free and open source distributed realtime computation system. Storm makes it easy to reliably process unbounded streams of data, doing for realtime processing what Hadoop did for batch processing. Storm has many use cases: realtime analytics, online machine learning, continuous computation, distributed RPC, ETL, and more. Storm is fast: a benchmark clocked it at over a million tuples processed per second per node. It is scalable, fault-tolerant, guarantees your data will be processed, and is easy to set up and operate.
Git
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
DVC
It is an open-source Version Control System for data science and machine learning projects. It is designed to handle large files, data sets, machine learning models, and metrics as well as code.
Plastic SCM
Plastic SCM is a distributed version control designed for big projects. It excels on branching and merging, graphical user interfaces, and can also deal with large files and even file-locking (great for game devs). It includes "semantic" features like refactor detection to ease diffing complex refactors.
Magit
It is an interface to the version control system Git, implemented as an Emacs package. It aspires to be a complete Git porcelain. While we cannot (yet) claim that it wraps and improves upon each and every Git command, it is complete enough to allow even experienced Git users to perform almost all of their daily version control tasks directly from within Emacs. While many fine Git clients exist, only deserve to be called porcelains.
See all alternatives