Linus Torvalds on GIT and SCM
I just finished watching the speech Linus Torvalds gave some days ago at Google, basically talking about GIT and Source Control Management.
He has really strong opinions but I think the video is really worth watching.
To be honest I was very shocked by some of the statements he made, like the following:
Does he really look like an agressive salesguy or is it just me? :-?
BTW there are very important topics to highlight in his presentation, many of them I totally agree with:
(Reviewed on 2009: I'd include TFS here too...)
Branching helps with parallel development, helps making experiments, helps commiting often, helps creating checkpoints, helps keeping the project stable, basically helps working better. I agree with Linus here because branching, and specially merging (check the point where he tells branching is not the problem, but merging: branch with SVN is ok, even with CVS, but then try to handle merging and the nightmare shows up) are the key concepts around which Plastic SCM has been built BTW I'm aware that he would also blame Plastic as he did with SVN, Perforce and all the others but reality is that Plastic is pretty good at merging, and this is one of our core differences with almost any other SCM.
(Reviewed: As you all probably know already, Plastic is really strong on distributed development, specially since we released GUI support for replication on 2.7. I truly believe distributed development is the way to go since:
And what we offer in Plastic (something GIT enforces too since github is out) is the ability to run both centralized or distributed scenarios: every Plastic server can replicate to another, it doesn't matter whether it's running on your laptop or at a corporate server.)
During the last months we have had the opportunity to talk to several companies around the world, and we found that most of the developers are pretty afraid (or confused at least) about branching and merging.
The reason? Well, CVS and SVN can't handle merge history (update SVN 1.5 has introduced merge tracking, but used to be pretty weak), so if you do a merge from a branch and try to repeat it later on after making more changes, you have to solve the full merge again...
This renders merging totally unusable in practice for SVN users (CVS is even worse), and due to its huge spread it has really altered the perception of many developers out there (and I'm just repeating Linus words... ;-P).
Watch the full video here: