Hanalei, Hawaii 9/2/2010
438 Posts and Counting

SubSonic: Working With Git

Tuesday, July 07, 2009 -

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

Related


Gravatar
mgutz - Wednesday, July 29, 2009 - Git is to Subversion as Subversion is to SourceSafe. Branching is dead simple, you don't need to maintain separate directories. You can have local branches, local commits and only push to a remote server what you want. Most visual visual developers find git hard because there isn't a nice GUI for it. How can you call yourself a developer if you can't get around in the command prompt. Weak :) The PowerShell prompt can be customized to show git status and branch. git is too awesome.
Gravatar
stimms - Thursday, October 29, 2009 - I use mercurial at work which is ostensibly the same thing as git. My reason is that I work with a number of external developers who maintain their own source code. Importing their code into mercurial allows me to keep local branches without relying on their source control or becoming detached from their source control completely.