From Git to God in Six Months

Posted on December 30, 2008
Filed Under development, gtd, knowledge | 1 Comment

Just over a year ago I watched the Introduction to Git video below on by Linus Torvalds and just had to switch it off after 10 minutes of play. I thought Linus was git and as a result didn’t touch Git for six months. Then in May 2008, I was starting a new project looking into puppet administration tools and was peeved off having to set up yet another repository in subversion. So I read the git tutorial.

Well, that seemed easy. So I tried it out. Hmm, that works. Then I re-watched the ‘Introduction to Git’ video above. Hey presto, from git-to-god in six months. Impressive. I still don’t like video, can’t put my finger on it, but I love the Git. And to those people that brought us the Git and a big thank you to you.

What is the Git? Git is a fast distributed revision control system. Now I use the Git religiously. Not just for my personal coding projects, but for the documents I write, the web-sites I build, people I share knowledge with, and so on. But why do I like Git, a few things really.

Firstly, I tend to operate out of directories a lot and need to version control everything under it. What I don’t want to have to do is create an artificial master copy on a centralised server and have to periodically sync up to that. Pointless. Instead I just want everything I need to be available from within my working area – my directory.

Secondly, branching and the management of branches must be brainless activity. Git embraces and encourages branching. After reading the git tutorial I was shocked at just how easy it is to work with branches. There is just no other way of working for me. Branching in subversion is harder and hence less appealing to me, so that’s probably why I didn’t use it as much as I’d liked/should have.

Thirdly, local commits. I can commit without access to a centralised server. There is NO centralised server. Instead you have a network of peers. No need to distribute/cluster a central repository. Distributed repositories are the norm, not the exception. There is no single-point of failure that you have with subversion, instead, the risk is spread amongst your peers.

Finally, simplicity. Once you’re happy working with branches locally, you can push and pull information to and from your peers’ branches. The syntax is clear and concise. There is not difference really to what you’re accustomed to working locally.

The problem with Git and distributed revision control systems like it is industry take up. Will the build systems such as Ant and Maven, the IDEs such as Visual Studio, IntelliJ and Eclipse, and so on support the Git. I think this is happening but cannot report conclusively on the current status. However, I am starting to see many more open source projects start out with the GIT and other migrating over. Also for web site development, where you try out new stuff, roll forward, roll back, compare and contrast, numerous different solutions, Git and its easy branching solution is a great tool.

Finally, a commercial example. I use a Groove. It’s a collaboration tool primarily used for sharing documents. It has a proprietary algorithm for the effective sync’ing of large amounts of data across a network. It also is a commercial product and so there are lots of features such instant messaging, calendaring, discussions, sharepoint integration and organising stuff. However, for me, all that is redundant. All I need is fast distributed, file-sharing.

The problem with Groove is that is breaks easily (admittedly the pre Microsoft Groove 2007 version). I’ve had to install it many times in the past and that takes time. When I change machines, I have to re-install it. When it starts crashing, I have to re-install it. The sych’ing between my peers has been problematic, to the point where we are asking each other whether you have the latest update. That’s not good. Given that I only use Groove for file sharing, I believe Git would be a much better and reliable solution going forwards. It also has the added benefit of being cross platform.

Comments

One Response to “From Git to God in Six Months”

  1. tdi on January 8th, 2009 2:41 pm

    Cleve, take a look at svk http://svk.bestpractical.com/view/HomePage too. I like to think of it as improvement to SVN.

Leave a Reply