assertTrue is the professional blog of Luke Bayes and Ali Mills

Git Real

Posted by Luke Bayes Sun, 15 Jul 2007 18:08:00 GMT

I recognize that I’m a couple of years late to the party, but I just caught this video of Linus Torvalds giving a demo of his new-ish Source Code Management (SCM) tool called git.

I’m a long time SVN user and probably won’t be switching whole hog right away, but so far the arguments seem compelling and my first walk-through was a real pleasure.

Some of the key features of git that sound attractive:

  • Distributed: It seems they’ve figured out a way to get a truly distributed system in place where there just doesn’t have to be a single, central repository. Developers can push and pull changes amongst each other and eventually just deliver their trunk to a primary maintainer. I’m curious about how this would really work as I go on and offline, but it sounds like Linus takes patches via email that bring repositories up to date. It also seems that there is a way to establish a ‘primary’ repository, but the great thing is that if there is a failure on the primary server, every single developer actually has a complete copy of that repo! If your SVN server fails, you’re rolling back to the most recent backup. Are you doing nightlies?
  • Fast: For those of you that know me, you know that I’m notoriously impatient. This system brings the entire repository to your local machine which means that you can run diffs, look at logs and roll back as far back as you want and these operations are all local – so they’re screamingly fast.
  • Branching/Merging: Apparently, merging has been made much simpler. I can’t say how true this is, but I can say that merging with SVN is not easy. If what Linus says in his demo is true, we’re not alone in our failure to branch as often as we should. With this system, it seems like this process is so much easier that it’s trivial.

Some problems with the current implementation as I see it:

  • Installers?: I couldn’t find any installers other than RPMs for download. This means that today, if you want to use or even try git on any system other than Linux, you’re building from source using make. This is a trivial process, but definitely not one that our designers will be comfortable with.
  • GUI: SVN has some really great GUI front ends that make it much easier for non-terminal people to get comfortable. I definitely use SVN from the terminal today, but without Tortoise, I probably wouldn’t have made it this far. Git does have a basic GUI layer that it ships with, it’s just not Tortoise.
  • Tool Support: I don’t tend to use SVN from TextMate or Eclipse, but if you do, it doesn’t seem like there is much tool integration for git at this time.
  • Attitude: I feel kind of funny being the one saying this as I tend to be pretty critical myself. But the way Linus personally and publicly attacks the SVN and CVS developers just sounds rude. These are people that have contributed their time with no financial compensation and helped millions of other developers with open-source products that are extremely valuable and important. If you disagree with some fundamental, technical decisions discuss those choices. It just sounds mean spirited to call people out like that and it takes away from the real discussion of the technology.

All in all, I do believe I’ll be moving toward using git in the future as it does seem to bring better speed and reliability. I just wish Linus was more considerate when giving us the details!

Tags  | no comments | no trackbacks

Comments

Trackbacks

Use the following link to trackback from your own site:
http://www.asserttrue.com/articles/trackback/1437

Your Reply

Comment Form.

Fields denoted with an "*" are required.