Today I was listening to a recent episode of Hanselminutes, where Scott Hanselmann interviewed three guys from Planet Argon about the source control tool Git. I originally heard about Git some time ago and didn’t pay it any heed - having heard the show and done some follow-up research, I’m beginning to think that Git would be worth further investigation.

Unlike many other tools, Git has no requirement for a central server - instead, every developers working set is a full repository from which you check out, and into which you commit. Being entirely local, there is no requirement for any network connectivity - you can commit to your hearts content even at 30,000 feet in an airplane.

Coordination between developers is achieved by pulling and pushing commits between repositories. Many Git users do have a central repository, but this is purely a convenience issue rather than an architectural one.

Internally, Git uses SHA-1 hashes as unique identifiers on various kinds of internal object, each representing an aspect of the repository - a file, a directory, a commit and so on. For a brief overview of how this works, check out Git for Computer Scientists

The internal design of Git is extremely elegant - there are just a few basic concepts, but they can be combined in ways both useful and clever.

Ahh, if only I had the spare time to dive into the source for a week to see how it all works … :-/

Comments

blog comments powered by Disqus
Next Post
User Settings Gotcha in Visual Studio  16 Apr 2008
Prior Post
YAGNI is no excuse to be lazy  12 Apr 2008
Related Posts
Gource for Software Visualization  13 Aug 2010
Upgrades that (mostly) Work  07 Feb 2009
Going to Oslo  17 Jan 2009
My Vista Experience? It Rocks!  09 May 2008
Future Trends  07 May 2008
Objecteering - Yeah, Right  07 Jun 2004
No more Applications  18 Jan 2004
Archives
April 2008
2008