Web Software Architecture and Engineering – Life on the Bleeding Edge

Git Anyone?

I was wondering if anyone has been using Git for a while, and can speak to working on a team where there is a lot of merging. What’s been your experience like? Is Git mature enough?
I’m thinking of jumping ship from Subversion. While I had the same thought about a year ago, new merge functionality promised a lot in Subversion 1.6.
Unfortunately, I’m in the middle of a new development cycle where there is a ton of merging, and I have two words for Subversion: SLOW and STUPID. Subversion 1.6, unlike the SVNMERGE tool which I used for ages and worked like a charm, doesn’t remember the previous merge. Its half-built. Its slow. And I’ve about had it.
I recently saw this video on Git. Its Linus Torvalds speaking at Google on Git, and while I have issues with some of the things he says, he’s right-on when he says that SVN should have focused on merging, not branching.
Hopefully you guys can shed some lights on some of the specifics I need before I jump ship!


Comments on: "Git Anyone?" (11)

  1. I haven’t done much complicated merging with Git, but have been playing with it for a month or so, and have done a bit of collaboration, and thus far it does seem to be just as easy as it promises.

    I like it!

  2. Bob,

    Have you been using any special tools for Git, like Tortoise?

  3. I’ve only used the command line interface thus far. I’m on a Mac and there’s no Tortoise-Git on Mac yet. I’ve looked briefly at the Mac GUI tools that are available, but haven’t had a need yet. One thing I’d like to find is a tool to duplicate Subclipse’s features for comparing files, and comparing the working folder to the repository. I haven’t done much research on this, but if anyone reading has a suggestion on that I’d love to hear it.

    I understand there is an Eclipse plugin (eGit, I think), but I understand that it is in development and not particularly stable at the moment.

  4. Bob,

    I would try out SmartGit. I use SmartSVN now, and its by far the most mature and easy to use software. I haven’t tried out SmartGit yet, but if you do give it a try, do let me know what you think.



  5. i use git right now for all my project including the cfwheels repo. i can’t tell you how easy git makes merging svn repos with local git repos, it really is something you have to experience. i’ve also use git to fix svn merges that broke between 1.5 and 1.6. really if you ever have a problem with git, hit me up in an email and i’ll be happy to try to help you out.

  6. forgot to mention. torgoisegit has come a LONG way. it now even supports git-svn commands. really if you haven’t take a look at it before, you should give the 1.1 version a try. i personally use cygwin for all git stuff, but i’ve been playing with tortoisegit since the first release and have been really impressed with their progress.

  7. Thanks Tony! Will let you how my foray into Git-land goes!

  8. Sami, I’m very interested in dumping SVN for the reasons you mention. I’m sick of deciphering merge fail and commit fail messages.

    Did you follow a particular “New to Git” users guide or anything? I’m interested in any feedback folks also might have re converting a large collection of SVN repos over to git.

  9. Alan,
    I’m seeing a bunch of ‘How to move’ docs on the Net, especially ones that will transfer directly from SVN to Git. That’s where I will start after taking a look at the tools and working with a dummy repo to start.

  10. @alan @sami,

    if you’re planning on using github to start playing with git, there is an option when creating a repo to have github import an svn repo. haven’t used it myself but from what i heard it works really well and removes the need to use git-svn to migrate away from svn. just beware that this is a one time import and not a way to “track” and svn repo with github although there are tickets opened for them to add that functionality.

  11. @BobSilverberg – gitX is nice. http://gitx.frim.nl/seeit.html

    I use merging quite a bit, and I love it. The fact that you branch on your local box means you can keep the branch in sync with the truck daily very easily (you can have multiple links to repositories) – it’s mostly simply a workflow change, but boy is it a nice one. Branching and merging are so simple and fast, once you get the hang of it you’ll wind up doing it a lot – several times a day sometimes.

    Because I am used to git, I keep making the mistake of suggesting branching in SVN, and it’s almost always a 2-3 day life story trying to merge changes back in, and it is horrible in SVN compared to git.

    A nice case study is digg.com: http://blog.digg.com/?p=900

    Anyway, I like it.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: