Justin du Coeur (jducoeur) wrote,
Justin du Coeur

Git for Ages 4 and Up

The Querki project (assuming it happens) is going to be Scala-based -- and Scala, by and large, runs on Git. So it seems like time for me to start understanding how Git works.

(This is very much a hardcore-programmer thing -- the rest of you should skip over it. For the programmers not familiar with it, Git is the currently-hot source-control system, which has been moving in and taking over the open-source world in recent years, gradually supplanting Subversion in some circles. Most Scala development is Git-based these days, and github is the most common hosting service of choice.)

Anyway, the question has been how to get started. So I was gratified to come across this presentatiion on the internals of Git. It's a 45 minute video, clearly a recorded session from a conference. It describes how Git thinks, using Tinkertoys to demystify the process. (On the grounds that nothing demonstrated with Tinkertoys can possibly be intimidating, and that they are the perfect tool for illustrating directed acyclic graphs.)

A caveat or two are in order. This is a session on Git internals, so you can understand what's going on. It goes into no depth on the commands, and it very casually assumes that you know your way around the concepts of source control -- it's very much Git for the experienced Subversion (or suchlike) user. And it has a live demo of the relevant Git commands running while they're showing the Tinkertoys, and that goes about as well as any live demo ever does -- there are several "Hmm. It's not supposed to do that" moments.

That said, it's a fine presentation: reasonably clear and light-hearted while giving some crucial technical meat. He does manage to give a number of key concepts very quickly, and I like what I see -- Git's fundamental assumptions (immutability, a principle that disk space is cheap but network lag is expensive, and so on) really appeal to me. So I feel better now about the likelihood of hosting Querki's source code on github, with the rest of the Scala world.

(Extra credit: another tool I've come across as I got the OP Compiler project up and running is giter8, a Scala tool to make it dead-easy to get projects started. Basically, giter8 lets you develop "template" starter projects, and distribute them with zero effort. It makes it a single command to fetch and install one of these projects. Scala Typesafe uses it for their tutorials, and they are a truly great innovation -- fastest path to getting started I've come across yet...)
Tags: programming

  • Post a new comment


    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded