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
Using Constructors  27 Feb 2023
An Inconvenient API  18 Feb 2023
Method Archetypes  11 Sep 2022
A bash puzzle, solved  02 Jul 2022
A bash puzzle  25 Jun 2022
Improve your troubleshooting by aggregating errors  11 Jun 2022
Improve your troubleshooting by wrapping errors  28 May 2022
Keep your promises  14 May 2022
When are you done?  18 Apr 2022
Fixing GitHub Authentication  28 Nov 2021
Archives
April 2008
2008