Digg.git - switching to git

An article outlining the digg.com engineering teams switch from svn to git. Basically sings git's praises, without getting technical.

Git is a distributed revision control system (while svn is a centralized one) where you can perform commits, branches, merges on your local working copy, without being connected to Internet. It allows, for instance, to commit multiple local commits as a single commit, even to a svn repository.

[...]

In the beginning we used Subversion. We checked out, branched, committed, merged, and tagged. It was far from perfect, it didn’t make anyone happy, but it’s what we had. And it worked, mostly. It was simple to understand and pretty easy to use. But it didn’t scale. As our engineering team grew, more and more work was being done in the same code base, we started stepping on each others toes more and more.

The integration process (merging a feature into trunk for release) would sometime take days and result in numerous conflicts in the code. It was up to the person doing the merging to resolve it himself or try and track down the original developer to determine which pieces needed to be kept. This resulted in both a large number of bugs as well as code just simply disappearing. Something that was costing us time, money, and impacting our users experience. All of which we take very seriously.

[...]

So why is Git so great? Well, simply put, it’s powerful and it’s distributed.

It allows you to do complex tasks with only a few commands. It makes things like branching and merging almost completely thoughtless. It even allows you, and goes so far as to encourage you, to rewrite history. It really lets each engineer work the way they want to. And when they’re ready, allows them to push their code upstream for others to see. It manages code and changesets so drastically different from Subversion that it truly takes a complete mental shift about how you think about source control to even begin to understand it. But believe me, it’s a good thing.

But Git does have it’s downsides. At first it can be difficult to understand what is really happening behind the scenes when you run a command and if something does go wrong, you really need to understand how Git works internally to correct your mistake. It also isn’t completely polished yet, there are no good GUI’s for it and the error messages you get when a command fails might as well be written in sanskrit.

[...]

http://blog.digg.com/?p=900

It seems the world is switching to git and I want to switch too, as soon as possible, probably starting with git-svn and svn2git

http://github.com/jcoglan/svn2git/tree/master
http://www.kernel.org/pub/software/scm/git/docs/git-svn.html

© 2012 Devis Lucato @itbus.