May 20, 2008

Something I missed: distributed version control is here

When I downloaded NetBeans I noticed support for the Mercurial version control system. Mercurial is new to me, I have never known it existed. I know and use CVS and Subversion. Because I am curious I went to the website. At the Using Mercurial section is a link to Distributed Revision Control with Mercurial. The word Distributed aroused my senses. What means distributed in this case? To learn more I search on Google and found this excellent article with a very entertaining video of Linus Torvalds explaining distributed version control.

The word distributed is a bit confusing to me, I like to use the term decentralized. The most important feature of a decentralized version control is that we don't have a central repository anymore. Every developer has his/her own repository. Files are committed to the local repository. Branching and merging is done on the local repository. We can share our repositories with others (hence distributed) via pushing or pulling. And because most interaction with the repository happens locally it is really fast. Plus there is no need to setup a central repository with all kind of permissions and user rights. Therefore I think using a decentralized version control system is also very easy for my own small projects. Although I am the only one working on the code, I still like to use a version control system. Stupid me... And with a decentralized version control system I am up and running in seconds, and I don't need to create a server repository, setup firewalls, user rights and the like. That is how I like it, plain and simple.

So the upcoming weeks I will try to learn and use Mercurial and GIT. And find out if it is all as easy as promised.

Another article to learn more about distributes version control systems.