Linus on Subversion, GPL3, Microsoft and More
victor77 writes "Linus has repeatedly slammed Subversion and CVS, questioning their basic architecture. Subversion community has responded...how valid is Linus's statement?" This and many other subjects are covered in this interview with Linus.
He did slam CVS indeed, SVN likewise. In Linux talk at Google about Git[video] he mentions SVN and their credo at on time being something along the line of "CVS done right", commenting that "there is no way to do CVS right."
The article linked here is light on details concerning SCM, though.
Indeed!
Subversion works, but like Linus says, it's nothing wonderful. You can hardly point at some feature of it and say it was the product of a genius. It does CVS right, and that's about it.
But SVN is limiting. For example I have a fork of the Second Life source, and SVN was PAIN for that. I ended up switching to SVK because it was the first thing I found that could sync with a SVN repository (which is what LL hosts), but Git would probably be also a fine choice as well.
SVN's problem is that when you want to branch somebody's source but still follow it by merging improvements it becomes really painful. You have to use svn-load-dirs, which is a hack. You have to give it megabytes of source to process, which can suck really badly when you've got your SNV repository hosted externally so that other people can access it.
Damnit, it's a paradigm shift that Linus is talking about. True distributed source code management brings an entirely new way of working. It enables very fast merging at a very fine granularity, which lets you use casually use this information (about what changed and when) in a way that changes the nature of how you work! It's the same sort of difference that code completion or Google search made. Once a certain kind of very useful information -- that has always been available, but a bit inconveniently -- becomes like running water out of the tap, it enables ways of working that just wouldn't have been practical before.
4 4603874737&q=git+google+tech+talk&total=3&start=0& num=10&so=3&type=search&plindex=1
If you really want to know what Linus is talking about from the man himself, watch this Google Tech Talk. It's over an hour, but there's nothing like hearing it straight from the horse's mouth.
http://video.google.com/videoplay?docid=-21993320
I used to use CVS (and still do for some projects). Then I switched over to SVN. It was remarkably unremarkable.
Then, a few months ago, there was a /. article on git. It sounded interesting so I tried it... and was thoroughly impressed.
I was up and running in about 20 minutes. You can use cvs/svn like commands, *but* you get local / decentralized repositories with fast forking and merging.
Start a project. Type "git init" and you've got a repository in place (you don't have to initialize and then check it out). "git add ." and "git commit" and you've got your first revision.
It took a little bit more effort to figure out how to push/pull from a remote repository, but it's fairly straightforward. A bunch of people can work in a group, have their own local repositories, and then merge their changes (along with the revision history). It's awesome.
The only reason I haven't switched all of my projects over to it is that the IDEs I use (Xcode and Eclipse) don't have good git integration (as far as I know).
the promise of NT and Cairo. Except that the "frivolous" lawsuit actually did find offending code. The only thing that saved BSD is that AT&T/USL had stolen even more code. You can call the lawsuit stupid, annoying, or disrespectful, but there was an element of truth to it. The community should have policed itself a little bit better. To this day we still here software companies decrying open source's disrespect for copyright and properly policing the code; which IMNSHO is fallout from the original attitude taken when BSD was being developed. I like open source too, but the way to go about it isn't by ignoring the licenses for code, no matter how small or insignificant the amount. Hindsight is 20/20, but that was an important lesson. By the end of the 90s, Unix vendors had mainly squabbled amongst themselves, BSD had been largely overlooked, and Linux had expended millions of dollars in efforts to reinvent a perfectly good wheel. That allowed Microsoft to take over the desktop. This makes no sense to blame on Linux. The BSD license allowed commercial forks, so they happened, while BSD failed to market itself and grow its development community (instead it forked). Meanwhile Linux was doing its own thing, but was it "wrong" for not spending its funds on supporting BSD instead? If you look at all the money ever spent developing Linux, its probably less than what was spent on one of the major commercial Unixes. Why is this ok in the business world, but not in the open source world? Also, keep in mind a lot of recent investment in Linux is precisely because of the GPL; IBM would not support development of BSD code, as that might help its competitors closed-source products.
Meanwhile, Microsoft successfully marketed a desktop, and took over a market many feel a free Unix could have occupied. Of course, in that case you should blame X-Windows and the slow development of broadly supported GUI toolkits. Both of those run on both Linux and BSD, so I don't see why this should be blamed on Linux. I guess Linus should have written a BSD-licensed version of KDE to make you happy?
Once again, technical superiority is not the only thing that matters. It isn't true in business, and it isn't true in the open source world. Building a healthy community and a working development process is just as important for long term success. And, like in business, sometimes a little competition helps, as it spurs development that might not happen in a pure monopoly.