Monday, January 5, 2015

SVN or GIT (Know your use case !!)

I am working on project that uses GIT as source code manager.Prior to this I worked on a project that was using SVN. Now everytime I make a commit on to GIT I just wonder why we are using GIT or what is wrong with SVN.In search of answer, I found some really good posts on google.

Ultimately, I came to the conclusion that its your use case that matters.They both are good. Now in which use case you should use what is a question. Here are some of my findings..


  • GIT is decentralized. Which essentially means you can commit to your local machine even when you are not connected to the internet.
Now the question comes, does your projects or team would be frequently in a situation where you dont have internet access!! Is your company is offering you special kind of holidays where you go to the mountains and you have to commit. How often are you going to do that?Just because once in a bluemoon you dont have internet access and you are desperate to commit ( and not wishing to keep your changes in changelist) you are using GIT.Even though you commit, no body would be able to see your changes because you are not connected to internet!! 
Using GIT..
  • GIT is the new cool thing that is trending in the developer fashion space.If your use case is to use version control that is trending..use GIT
We like to follow the latest trend..
  • GIT is well suited when multiple developers are working on different branches and not connected to main branch.(trunk/origin whatever..)
Now, does your project in your company work in this way?If yes then go for git, because git have sophisticated techniques of merging,rebasing,switching between branches. My project however work in a way most projects work.All developers make changes for the upcoming release.We have builds running to ensure nothing gets broken.Then why use GIT??

  • GIT is best suited for open source projects where multiple developers fork a branch and everyone adds a functionality and the owner chooses the best one from several branches and pulls the changes to the main..
In a nutshell, I would like to say if you and your team really needs some kind of offline version control , and you guys can take out time to learn this new system with entirely different terminology ( checkout /clone and commit/push) then go for GIT.And if you are interested in spending more time on delivering performant system and just a version control system that manages source code for you then go for SVN because its very intuitive and easy to use..


No comments:

Post a Comment