Pick of the week: Git
Posted on Fri, 19 Jun 2009 in Pick of the week
I
have been using
source code management
systems ((Including, but not limited to:
RCS,
CVS,
Subversion,
Bazaar, Darcs &
Mercurial)) for more than a
decade, but I have never been quite happy with how they worked
until I switched to git ((I switched to git late in 2006 when I got
fed up with Subversion and the way it looses meta data during
merges)). There were always something that couldn't be done ((E.g.
no way to rename a directory in CVS)) or something that had to be
done in a silly way ((E.g. Relinking file objects to avoid evil
twins in ClearCase)) to please the system. Well, no more of that!
We now have Git! Git is a
Distributed Version Control System
which is lightning fast and able to handle a project of any size.
Git makes branching and merging really really easy and almost a
no-op, and this gives you the freedom to experiment without loosing
the ability to go back to an earlier decision point and branch out
from there ((Who hasn't delayed a commit in subversion, only to
find that the code needed to be reworked from what should have been
a commit 8 hours earlier)). The most cool ((Actually, the most cool
thing is that git is content based, and will track a method moved
from one file to another while keeping the author meta data intact
- I know, it's magic! )) thing about git, is that it works in much
the same way that people interact with each other: via a
web of trust. Git was
initially created by
Linus Torvalds of
Linux fame, when
Larry McVoy
pulled the plug on BitKeeper back in 2005. In the beginning Git was
a very complicated tool, but that has since changed with
Junio Hamano as project lead and
an veritable army of developers who has polished Git into what it
is today. My latest adventure with git has taken me to github ((I
have moved all of my Open Source projects to
Github a couple of days ago)),
which is a really nice webinterface to git. Github helps facilitate
the social process that exists between developers who share code
with git or work on the same project using git. You can find out
more about git on the git website or on the
git
mailing list
((Very high traffic and very high signal to noise ratio - lots of
nice and knowledgeable people)). If you already are a casual git
user, you might find gitready.com useful.
There you'll find small tips about both simple and advanced uses of
git - in nice bite sized chunks. If you are serious about
development and
source code management
you'll switch to Git...
All the cool
kids have ;-)