Imagine you have a friend on the phone (not VoIP) who asks: ‘What’s so special about Git? I’m fine using Subversion.’ What would be your ‘elevator pitch’ in order to describe the advantage of using a DVCS like Git?
Share
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
For me, one of the main things you can do in a DVCS like git that doesn’t work well in SVN is the following:
1) Create several development branches off of trunk for various features that are under development.
2) Merge code from one feature branch into another feature branch before either feature branch is finished and ready to be merged into trunk.
3) Later, merge the feature branches into trunk.
It’s nice to break new features off into separate branches so that trunk stays clean until the features are finished. But, inevitably you run into a situation where a team working on one feature branch has written some code that is needed by a team on another feature branch. If you merge this code across feature branches with SVN, you’ll have trouble merging into trunk later on. Git avoids this problem.
Here’s another benefit… Your company decides to outsource development of a feature to an Indian contracting company. Or, your Professional Services group needs to add a feature for a customer, and that feature may be productized in the future. You really don’t want to give write access to your SVN to the Indian contractor or your PS group. So, they have to build the code outside of source control, and you have to merge it in yourself, detecting and resolving any conflicts yourself without any help from SVN, and losing all of the contractors’ check-in history in the process.
But with git, you just give the contractor or your PS group a copy of the repository, and they can commit to it just like a developer. Later, you can use git’s features to merge the changes back into your git repository. Git will find the conflicts, and it will preserve history.
Finally, one of the coolest things about git is that you really don’t have to convince your friend that it’s better than SVN. Because git integrates so well with SVN, your company/friend can happily use SVN while you happily use a git connected to the SVN.