Git vs Subversion
Git and Subversion are most popular and widely used version control system. What is the best situation to choose them? It is important to know its pros and cons, evaluate your requirement and choose the right one.
Subversion is a centralized version control, only one master copy is maintained and all clients have to commit their changes to the centralized repository. Git is a distributed version control. Each user could have their own repository. User could work locally to his branch and latter merge the appropriate changes back to the master branch.
In Git, there is no concept of master or centralized repository as in Subversion but still the repository maintained by the project owner is considered to be the master.
Subversion repository should have better backup plans, if the main repository is down then it could be replaced with the last backup data. If the last backup copy is old then chances of losing data is huge. In case of Git, all users have their copy which might be frequently synced with the master. Even master node is down any other node could be considered as master. Chances of losing data are less.
Git repository consumes less space than Subversion.
Subversion has better client tools and GUI based tools. Most of the IDE supports subversion.
Partial repository (subdir) checkout/checkin are possible with Subversion. In case of Git, the entire repository has to be cloned.
Subversion has better access control, read and write (commit) access could be given to different users. In case of Git each one will have their own copy and project admin pulls the changes from the user branch.
Working with Subversion is more or less like our regular version control. No extra learning is required. Git requires some learning curve to understand its concepts.
Git is distributed and faster. Choose Git if you are doing complete distributed development. Sometimes what we think as an advantage could be a disadvantage also. Git allows projects to be cloned and there could be N number of copies for each project. It is good that each one is working on their own copy but it is difficult for the project owner to merge their changes back to the master copy.
In case of Subversion, since it is single repository and restricted access, User will do frequent check-ins and sanity of the branch will be maintained.
If you really want distributed and want to give more freedom to users choose Git otherwise better to choose Subversion.
Best open source Version Control.
comments powered by Disqus
Microsoft is monopoly in the commercial software. Here are 15 best alternatives to most popular and widely used Microsoft products.
Git is the most popular SCM, initially developed to manage source of Linux kernel. Later many clients and tools are developed for Git. In this article we going to see various tools to use with Git.
I have a open source project but where should i host? This is the frequently asked question among developers. Below details will certainly help to choose the best code hosting site.
Most of us would be familar about the project hosting sites like sourceforge, github etc. These sites hosts the complete project, documentation and has a means to track bugs etc. Sometimes we may need to host the simple pieace of code which we may be want to share it with our friends or to post the link in the forum to discuss more about the code.
I could see many many students posting this question in many forums, I want to contribute to open source but How to contribute? There are many ways to do that. I have listed a few and I hope it might be useful.
There are couple of sites which indexes the open source code and provides support to search code. Recently Google announced that they removed code search support from Google code. This article provides pointer for code search engine sites.