All aboard the Git train

I’m sure you’ve heard about Git. Chances are you’re still using subversion. You scratch your head and ask: “Why switch away from subversion, it does everything I need?” Or maybe: “Why on earth would I want a distributed version control system? Screw you fanboy.”

For a long time I felt the same way. All the hype seemed weird; it’s just version control. I felt: “Git, probably pretty neat—but I don’t really care.” Is it going to make my day any better? Probably not. Is it going to be better than perforce, which is ridiculously expensive for a small business? Probably not.

It turns out I was wrong.

When the Rails project migrated away from subversion to Git, I thought I’d give it another look. Our nightly subversion backup had grown to 400+ megabytes, mostly due to an infuriating 7-year old subversion bug/limitation/feature that won’t let you fully obliterate a file from the repository. It sucks to inadvertently check in a 10 megabyte DMG knowing it’ll be in the repository FOREVER.

After the release of ExpanDrive, we were at a point in our development cycle where we had a little room to re-evaluate our development toolchain and see if our current process could be improved. At Jon’s urging, we gave it a shot. Using git-svn [awesome], we imported our entire source tree and history into a hosted GitHub repository. We’ve been using it full time for about a bit over a month are loving it. GitHub does a great job and provides a wonderfully simple interface. It could be better, but that’s another post. In the next few days we’ll be posting a series of articles on the highs and lows of our first month with Git.