For several months now my enthusiasm for learning GIT has been increasing as I hear more and more about it. Almost everyone who talked to me about it was a huge fan of Git and its model over SVN. They all seemed convinced it was some sort of a revolutionary idea and that it was leaps and bounds better than SVN. Now, admittedly, it is quiet often you will come across ‘fan-boys’ for all sorts of different software tools/projects/companies etc. But that didn’t console me about the fact I was completely out of loop on this one.

Today was the first class I attended for my new open source course, and fortunately the topic covered was Git. I didn’t know much about it except that its model is sort of the converse of SVN, as in, it is not centralized, but distributed. I’ve used SVN for the past 1 year in several projects and was curious to get introduced to this new radical concept.

First, I was surprised to learn that it was developed by Linus Torvald, as a way to co-ordinate developing the Linux kernel more efficiently with the large development community around the world. It was already living up to the hype it had generated in my mind so far.

Then we got deeper into comparing its model directly with SVN. I’m pretty sure my reaction was the same as most people’s first reaction to the idea of a repository distributed on the machines of each of the developers – “Emmm…how is that going to work??”.

I admit, while learning about Git, I did have a bias towards it just from the hype around it, and also because the idea of a distributed model, as opposed to a centralized model seems to me a little more….emm…democratic 😛

However, even though I find I am still enthused about the idea, I don’t appreciate how it is leaps and bounds better than SVN yet.

I have been struggling to see how a clone of a repository for every developer, will make the process of resolving conflicts easier than SVN.

It seems natural that any number of developers that start off with the same source-code, will end up far off from each other’s code in just a couple of weeks. In-fact so far that resolving the dependencies will require a study of the other developer’s code that alone could take a couple of weeks.

On the other hand, so many large open source projects that have selected Git for their sub-versioning control system really adds to its credibility. So I’m sure I will come to see all its benefits in time. Now step 2 is to set it up and start using it for my open-source project 🙂

Comment now!