Introduction to Mercurial
Mercurial is a popular distributed version control system, that offers way to archive as well as to save older versions of source code. Mercurial came into existence in 2005 as an open-source version control system, as an alternative to the closed-source BitKeeper and was developed by Matt Mackall.
Unlike SVN, which is a centralized version control system, Mercurial is a distributed version control system. That is, when you push changes to the repository, it will go to the local machine. Because of this, the process becomes very faster, since you’re not constantly pushing to a remote server (although it can be set up that way).
Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.
Mercurial is built primarily in Python, which makes it cross-platform compatible. This is also one of the reasons that Mercurial is mostly used as a command-line tool, though there are GUI tools available. Mercurial has been the version control system used by big brands like Adium, Mozilla, Netbeans, Vim, Growl and so forth. Apart from these, a lot of individual developers use Mercurial to manage their code.
Features of Mercurial :
- Distributed architecture :
Most of the traditional version control systems like SVN are based on client-server architecture, where a central server holds the updates done to a project. Mercurial is completely distributed, where each developer has a local copy of the complete project. This way, the developer is not dependent on network or server access. Committing the code, branching and merging can be done faster.
- Fast :
The implementation and data structure of Mercurial are designed in a way that the tool is fast enough to handle multiple commits. Diffs can be generated between revisions or rolled back in much lesser time, usually in seconds. That’s why it has been used in larger and complex projects like OpenJDK or NetBeans.
- Platform independent :
Mercurial is intended to be platform independent. Hence, a major portion of it is written in Python, and a small chunk in portable C for performance related reasons. Because of this reason, binary releases for Mercurial are available on all major platforms.
- Extensible :
Mercurial can be functionally extended using the official plugins that are shipped along with Mercurial or downloading from external sources or writing our own. Extensions are written in Python and can change the workings of the basic commands, add new commands and access all the core functions of Mercurial.
- Easy to use :
The command set of Mercurial is so simple that most of the SVN users will find it very easy. The basic interface of Mercurial is easy to learn and use.
- Open Source :
Mercurial is available free and is licensed under the terms of the GNU General Public License Version 2 or any later version.