Version control tools are essential for software development. They help developers manage changes to source code over time, control production project releases, and multiple coder cooperation. There are many version control tools available, such as CVS, SVN, Mercurial, and Git. Each has its strengths and weaknesses. Among these tools, I have used SVN, Mercurial, and Git. Among these tools, I prefer Git the most now.
Subversion (svn) is a centralized version control system. I used that for my first job project. It is easy to use and has good integration with IDEs. However, SVN has some limitations. For example, it does not support distributed development, and branching and merging are not as easy as in Git. The most significant drawback of SVN is that it is slow when working with large repositories, due to its centralized architecture.
Mercurial is another version of the control system, which has an interesting binary name, hg, which is inspired by the chemical element mercury. Mercurial is a distributed version control system, like Git. It is easy to use and has good performance. However, Mercurial has fewer features than Git, and its community is smaller. I didn’t play with Mercurial much, since I only use it for debugging into OpenJDK’s source code, as the default version control tool of OpenJDK.
Among the various version control tools, Git is the most popular. It was created by Linus Torvalds, the creator of Linux. That is a great reason for me to try Git. After trying Git, I found it to be very powerful and easy to use. Git has excellent support for branching and merging, which makes it easy to work on multiple features simultaneously. Git is also very fast, even when working with large repositories. The Git community is large and active, which means that there are many resources available online. For example, Github is a popular website for hosting Git repositories. I have started to use Github to manage my projects, and I found it to be very useful. I also like the fact that Git is open-source and free to use.
Time to play with git!!! Time to join Github!!!