While I’m not at work or performing contracting duties, I write my own software in C. Obviously I require a revision control system and I’ve opted at this time for git.

In previous posts I’ve made no secret of my love for git. It’s a simple, elegant and fast revision control system that works just as well for a single developer as it does with a team of distributed developers.

Primarily I operate across three different machines: A Gentoo Linux partition, my primary OS X partition and my Eee PC running Moblin Linux. Here’s where distributed revision control systems really help, and where git in particular truly shines.

First of all, each machine has its own local repository, each repository with different branches (I create branches as I see fit, but they follow a common naming theme). I “sync” everything between machines through my account at GitHub, however I could just as easily use any one of my machines or servers as the primary git repository. I enjoy GitHub’s feature list, however, and the monthly rate is reasonable.

First, having my source on multiple machines distributed geographically gives me real peace of mind. I’ve already flirted with losing my two primary partitions recently (a scary enough though), but I wouldn’t lose my source unless something truly catastrophic happened and both GitHub and my laptop died at exactly the same instance as my partitions.

I don’t think this will happen. Ever.

Second, git hub works well for what I do. A typical session might look something like this:

$ git pull
$ git checkout -b v0.1.6
-- write a little code, compile, test, get frustrated...
$ git add .
$ git commit -a -m "A few changes."
$ git checkout master
$ git merge v0.1.6
$ git push

I’m likely leaving a few details, don’t take the above snippet as gosphel… it’s just an example.

Finally, git offers me the ability to scale vertically. It’s already fast and stable (well, it has proven so for me). I don’t have any reservations about adding additional team members to any project I have stored in a git repository.

If it works for the Linux kernel, it works for me.

Do you use git in your personal or professional projects as a lone developer? Have any wisdom to share? If so, please leave it below!

Share with Peeps:
  • Twitter
  • Technorati
  • Google Bookmarks
  • Facebook
  • Reddit
  • Digg
  • del.icio.us
  • Live
  • StumbleUpon
  • LinkedIn
  • MySpace

Comments are closed.