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).
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.
Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.
- Introduction to BitBucket
- Introduction of JIRA
- Introduction to Pervasive Computing
- Introduction To Malware Analysis
- Introduction of Technical Report
- Software Engineering | MOCK (Introduction)
- Introduction of Software Design process | Set 2
- Client-Server Software Development | Introduction to Common Object Request Broker Architecture (CORBA)
- Software Engineering | Introduction to Software Engineering
- Agile Testing Quadrants
- Difference between Program and Project
- Difference between Program and Product
- Various Path Testing in Software Testing
- Measuring Software Quality using Quality Metrics
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.