Linus Torvalds on GIT at Google

I've been looking at GIT and learning what it does, so this 70 minute Youtube video Tech Talk: Linus Torvalds on git caught my attention:

Linus actually explains in a compressed amount of time why GIT is better than most other SCM (that's "source code management" to him) tools. He thinks they are hopelessly broken. He cites the following reasons:

  1. CVS can't merge without much agony.
  2. SVN, based on CVS, offers only improved branching, but no improvement where it matters on merge performance and ease.
  3. ClearCase is tortuously slow.
  4. Perforce and most of the other tools he criticized are centralized, impacting performance and trust.

Linus identifies Bitkeeper, Monotone, and Mercurial as exceptions. (He puts a very positive spin on the parting of the ways with Bitkeeper early on in the talk.)

A confident security analysis of a distributed model for code management may appear counterintuitive, and Linus does not spend any time on actual security issues. What he does talk about is the behavioral aspects: if everyone owns his own repository, and decentralized "pulls" bring data to the experts who are analyzing the code, and if merging tools are very good, then you have a much better system than relying on one location to "protect" data integrity.

Privacy issues are not usually a concern for open source developers, but one can argue that pulling an SVN/CVS repository down to your local hard drive and pushing changes to it back up again is no more secure than providing the same authentication and logged access method to several private GIT development repositories. Politics may vary.

Linus briefly asserts that the notion of SHA1 content hashing is intended for integrity checking. I've been involved with a project where the central code repository was corrupted by a file system bug. Having a way to verify the content over many years as Linus asserts, would have been very helpful to us as we patched the code repository back together again the best we knew how.

Linus has done some amazing work here, and his talk gives us some insight into why GIT is a good thing. But the notion of distributed development and the model Linus has adopted for maintaining Linux is just as powerful. Let other people contribute, while needing no real trust, because the decentralized development model lets a code gatekeeper analyze every line of code, and every byte of every file based on his own experience with it over the duration of the project.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Nice Piece!

Captured the key points well, I think.

Perforce

Thanks. More discussion by others can be found here. I talked to a friend who works with Perforce daily about this and he was skeptical for several reasons:
  1. Corporate environments like centralization.
  2. He didn't understand GIT's ability to manage separate but related repositories and felt users had to maintain a whole code base.
  3. Torvalds wrote GIT to do what he likes, and it does that well. This doesn't make it suitable for most other teams.
  4. His mistaken impression was that Linus didn't like Bitkeeper.
It looks like GIT needs better PR and some refinements in its UI for linking multiple repositories so that users don't need to feel like they have to check out the whole planet.

Post new comment

CAPTCHA
This question is for testing whether you are a human visitor to prevent automated spam submissions.
Image CAPTCHA
Copy the characters (respecting upper/lower case) from the image.
Syndicate content