Slashdot Log In
Linus on Subversion, GPL3, Microsoft and More
Posted by
CmdrTaco
on Sun Aug 19, 2007 09:14 AM
from the stuff-to-read dept.
from the stuff-to-read dept.
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.
Related Stories
This discussion has been archived.
No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Full
Abbreviated
Hidden
Loading... please wait.
Alternate link (Score:4, Informative)
http://www.efytimes.com/archive/144/news.htm [efytimes.com]
Article Summary Misleading (Score:5, Insightful)
Re:Article Summary Misleading (Score:5, Informative)
Think that could be because its an Indian news site and the guy himself is Indian?
Believe it or not, just because something is published on the world wide web doesn't mean it has to cut out everything of local interest.
Parent
Why Indians Don't Contribute Much to Linux (Score:5, Insightful)
Linus: This is actually a very hard question for me to answer. Getting into open source is such a complicated combination of both infrastructure (Internet access, education, you name it), flow of information and simply culture that I can't even begin to guess what the biggest stumbling block could be.''
My guess is it's because the _bulk_ of Indian software engineers are being raised on Microsoft technology (the fact that it's Microsoft is irrelevant here; what matters is that it isn't Linux and doesn't resemble Linux). I don't actually know that this is the case, but I suspect it. I've spoken to a number of people from various parts of the world that aren't Europe or North America, and the picture I get is mostly the same: virtually everybody who uses a computer uses (cheap or pirated) Windows, if you take classes in CS you are taught Microsoft tools, and, at work, you use Windows. It's like nothing else exists. Why would you contribute to Linux, coming from such an environment?
Also, I know for a fact that a lot of people in India get trained on Java. That's yet another platform that isn't Linux and, even if it's more like Linux than Microsoft's platform is, it's still different in important ways. Besides, Java can run under Linux...but that's not what usually happens.
Linus admits he's a troll (Score:5, Funny)
Not only good, but also easy enough! (Score:4, Insightful)
Putting your project in a Subversion repository takes an hour or two, maybe half a day if you're an idiot. Setting up an arch repository took me at least twice as long. Explaining how to use arch to developers who hadn't worked with it before is an order of magnitude more difficult than explaining Subversion to developers who haven't worked with it before.
Subversion is "good enough", but it's also simple, straightforward and frankly if you have anything that goes beyond a very simple project or where more than one person is involved, I can't think of many reasons to not put it into a Subversion repository.
I still like arch more for the concepts. But I don't use it. I might look at git one of those days, if I have a need Subversion doesn't address.
Re:Linus would not be pleased... (Score:4, Funny)
Parent
Re:Linus would not be pleased... (Score:5, Informative)
oracle is all great and fun if you have the money to cough up for it. sql server has great performance at a fraction of oracle's cost. of course, a competent architect will know when to use sql server and when to use oracle.
Parent
Re:Can't RTFA... (Score:4, Insightful)
Parent
Re:Can't RTFA... (Score:5, Informative)
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 [git.or.cz]. 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).
Parent
Re:Other subversion flaws (Score:4, Insightful)
You're also apparently trapped by the same error as the Subversion authors have made. You think the local disabling of permissions to read the data means that someone locally cannot actually read the plain text passwords. Other means for access include:
* Booting with a live CD to access every file on the local drive.
* Getting fools to run a USB device on Windows systems (which doesn't accss the TortoiseSVN stored passwords, but can easily access SSH keys and passwords stored under CygWin)
* Removing hard drives for duplication (apparently a common practice in European hotels before international conferences, where thieves enjoy quite a lot of easy nabbing of passwords or even industrial espionage)
* Accessing backup tapes (an extremely popular hobby for both amateur and professional system crackers)
Setting the permissions to 700 keeps out only the most casual and polite of attackers. It's generally no more effective than putting a deadbolt on a screen door.
Parent
Re:Can't RTFA... (Score:5, Informative)
The article linked here is light on details concerning SCM, though.
Parent
Re:Can't RTFA... (Score:5, Informative)
And here is the reaction from the subversion team [tigris.org]. For those of you who don't want to RTFA, they basically say they agree, its not appropriate for something like Linux.
BTW, isn't this all old news? His original comment on subversion was dated from 05
Parent
Re:Can't RTFA... (Score:5, Interesting)
For instance, the comment from the Subversion team states that they hope the kernel dev team find some VCS that they like. They already did and it was git (http://git.or.cz/), a program that Linus Torvalds wrote himself.
As a side comment, I like git over Subversion for a number of reasons. First it has data verification in the form of checking SHA1 (note that this isn't for repository protection from attacks but just for verification from corruption). It's distributed, and doesn't blow up the repository size when the repository gets large. SVN keeps a
Even if that's not much of an increase in space, it's ugly and it makes the repository (just files) hard to copy (have no idea why they implemented it this way). Of course there's a backup feature in the program so there's no reason to copy by hand, but still, it's inelegant.
Parent
PARADIGM SHIFT! (Score:5, Informative)
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
Parent
Re:PARADIGM SHIFT! (Score:5, Interesting)
And do try to go easy on the phrase "paradigm shift" in your explanation even if this is one; marketdroids love over-using it and it's come to be a code phrase for "same old, same old". Focus on how things have changed for you and you'll get a better response.
Parent
Re:PARADIGM SHIFT! (Score:4, Interesting)
In exactly what way does a distributed source code management system change the way you work?
It gives you private branches and commits, which allow you to work with the power of a VCS, but without having to pollute the main repo with dead ends, poorly written changes, and experiments. It also allows for true disconnected operation, and allows any developer to "pull" from another developer, again without having to pollute the master repository.
And specifically with git vs. SVN, git offers true branches and tags (unlike SVN's bizarre, nonsensical "simulations"), and true merges.
And do try to go easy on the phrase "paradigm shift" in your explanation even if this is one; marketdroids love over-using it and it's come to be a code phrase for "same old, same old". Focus on how things have changed for you and you'll get a better response.
It (git and distributed VCS) is a "paradigm shift" the same way that, say, the relational model is a paradigm shift over the network model. It generalizes the problem and strips it down to certain fundamental concepts, and makes those concepts available to you directly, instead of under a layer of ill-conceived and limited operators.
For instance, in SVN, how do you move a changeset from the tip of one branch to another? You can't. It's not allowed by the model, even though in terms of more fundamental operations, it's easy to describe. But in git, you can. Just cherry pick it to the new branch, then move the tip of the old branch back one changeset (the "dangling" changeset on the old branch will eventually get garbage collected). You could also write your own "git-move-changeset" command using the existing low-level git commands.
Instead of considering the deeper, underlying issues, the SVN team just cloned CVS's behavior and made it cleaner. Too bad.
That's exactly what a "paradigm shift" is: finding the deeper, fundamental operations and then showing how the existing systems are just subsets of that functionality.
Parent
Re:PARADIGM SHIFT! (Score:5, Insightful)
[me using random software]: 'This sucks. I could code something better in two weeks.' [false, or "true in theory, but I didn't do it"]
[Linus Torvalds using random software]: 'This sucks, and basically 99% of the software in this entire category sucks, for reasons X, Y and Z. I could code something better in two weeks.' [true; done]
Truly impressive. Whenever I start to think I've accomplished anything programming, I look at video like that (which was on reddit how long ago?) and realize once again that there are people who live on a different planet than I do.
Parent
LOLLINUS (Score:4, Funny)
"Oh hi, i shiftedz ur paradigmses."
Paradigmses, he shifted them.
Parent
Re:Can't RTFA... (Score:4, Informative)
See also: 0.10 history [kerneltrap.org], 0.02 & 0.03 history [kerneltrap.org], 0.01 history [kerneltrap.org]
Parent
Re:Can't RTFA... (Score:5, Interesting)
the promise of NT and Cairo.
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.
Parent
Re:Can't RTFA... (Score:4, Insightful)
Besides which, you're missing an important part of the equation: commodity software.
Parent
Re:SVN vs. CVS (Score:5, Interesting)
Simply move the directory you're working in and type 'git init' and you're off and running. If you're developing the same code on multiple machines, it's simple to develop on them independently and still sync relevant changes. Frustrating.
With SVN, you have to set up a central repository (not difficult, but tedious) and if you're working with the code on multiple machines that aren't always on the same network you either have to have a SVN repository on each one and manage syncing them somehow, or one machine can't make commits when the other isn't on the network. Frustrating.
I still find git to be a little confusing (especially in regards to warnings seen when pushing or pulling changes from one repository to another and merging branches), but I've decided that even if git isn't the best answer, a distributed version control system is closer to the Right Thing than the old way of doing it (for my purposes, at least).
Parent
Re:Article (Score:5, Interesting)
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.
Parent
Re:Article (Score:5, Insightful)
It just needs a new PR guy and a little bit of time.
I'd say it's at least in part due to lack of Windows support. Love it or hate it, you don't become the world's foremost anything by ignoring Windows. As can be seen here: http://git.or.cz/#download [git.or.cz] the developers seem to view "cross-platform" as meaning "We got both kinds! RPMs and debs!".
There is a partially functional git port in Cygwin, but it doesn't really work as far as I can tell, and it certainly isn't mentioned anywhere on the Git home page. I wanted to like Git, but unfortunately it seems to not be ready for widespread use on the most popular desktop operating system in the world. I'd be happy to try it again someday when it is.
Compare with SVN or Mercurial or Monotone or most any other SCM system. Most of the others all feature prominent download links on the home page for Windows, Mac, and Linux.
Parent