Hanalei, Hawaii 2010-03-16

SubSonic: Working With Git

Many, many people have asked why I moved our Source Repository to Git/Github and it’s hard to explain other than to say that for Open Source – Git is a very nice option because it very much enhances the “collaborative” experience in that merging code from others is not only simple – it’s foundational. The only way that seems to capture the main elements of Git is that it’s peer-to-peer source control with a heavy dose of Social Networking.

Many, many people have asked why I moved our Source Repository to Git/Github and it’s hard to explain other than to say that for Open Source – Git is a very nice option because it very much enhances the “collaborative” experience in that merging code from others is not only simple – it’s foundational.

The only way that seems to capture the main elements of Git is that it’s peer-to-peer source control with a heavy dose of Social Networking.  There is no centralized source – everyone has their own disconnected “repository” (which is called a “branch” in Git parlance) that you merge when it makes sense to. When you do run a merge, your version history is merged as well – making a very weird “Facebook meets Source Control” kind of experience.

Git as Source Control Management
I got a tweet tonite from Mohammed Meligy that I really want to address:

@robconery why (in an organization) would I choose Git over SVN ?

And the answer is: I have no idea. Git has its strengths for Open Source, to be sure, but for the Enterprise I just don’t know and I would say you should probably be afraid. I have a lot of opinions about this as both developer and Lead Geek, but I think I’ll summarize it here for you:

  • Developer: I love shiney stuff!
  • Lead Geek: Do what works!

Source Control is something you don’t want to mess with and if your system is working for you – that’s a perfect, irrefutable argument. TFS is light years ahead of anything Git can provide in terms of workflow and process management – and if these things are important and working for you – then you have no reason at all to change; in fact you have many reasons not to.

Subversion is a good system to – it just happened that in our case I needed more than one repository and Github fit exactly what I wanted.

Working With Github and SubSonic
If you want to know how to work with Github (as far as SubSonic is concerned), I made a quick (10 minute) screencast on how to get up and running on Git, and then how to fork/push our source. This is a really bare-bones intro, and I’ve also added it to our wiki.

Download here

Double-click for full screen