Slashdot Log In
Linus on Subversion, GPL3, Microsoft and More
Posted by
CmdrTaco
on Sun Aug 19, 2007 08: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.
Can't RTFA... (Score:3, Interesting)
Re: (Score:3, Funny)
Who is this Linus character and what does he have to do with Linux?
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: (Score:3, Informative)
Re: (Score:3, Funny)
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:Can't RTFA... (Score:4, Insightful)
Technical superiority did win in BSD's case.
That's a pretty bold assumption not born out by the overall market [wowdailynews.com], if you define winning the way you have been.
While Linux is doing a lot in the server arena, it has accomplished very little on the desktop, despite efforts like OpenLinux and United Linux to create a standard Linux.
I'd argue that distributions such as Mandrake, Ubuntu and PCLinuxOS have done a lot more for the desktop, but certainly none have taken the overall market by storm.
The kernel may not have forked like Open/Net/FreeBSD, but there's really no difference between forked kernels and forked distros when it comes to fracturing the market.
There's a difference between duplication of effort spent packaging existing software (distros) versus developing kernels and supporting libraries from scratch, with only partial code sharing through the heroic efforts of programmers spanning parts of the BSD family. As time goes on, this is not going to get any easier, while standards such as LSB has made packaging on Linux quite a bit simpler.
There are really no commercial apps for Linux and there is no real market that will ever encourage their development.
On the desktop there are few, but there certainly are a lot of specialized professional apps available for Linux. For everyday use, I'd question how much that matters. Sure gaming is not in a good state, but its not much better on a Mac; Consoles are even beating Windows FWIW.
That leaves Apple's Mac OS as the only viable desktop, and its based on BSD, not Linux.
So, without a commercial software market, a desktop is not viable? I guess you're not really much of an open source person. I must be really good to have been using an unviable desktop exclusively for the last 8 years as a my desktop OS. Or just maybe there's a difference between "viable" and "market leader". As an obvious Mac fanboy, you should know the difference. A 90% market share for Windows hasn't stopped OS-X from being viable, except perhaps for gaming, and (at the whim of Microsoft) office productivity.
It does however share the same POSIX platform, meaning that there's really nothing of unique value in Linux that can't be ported to Mac OS X
So if OS-X sharing Posix is good, how are multiple Linux distributions following LSB fractured and broken? You're not being very consistent.
while there is lots of value associated with Mac OS X that will never make it to Linux: commercial apps, consumer focus, real marketing, retail support and the like.
None of those have anything to do with BSD or the Mac kernel. Commercial apps in Linux are nearly comparible to Mac (but not Windows). Consumer focused distributions exist (just about anyone can use PCLinuxOS or Linspire). Real marketing, well if you consider that an OS technical feature, it's hard to compete with Apple; They are better at marketing than engineering. Retail support exists just fine if you need it; Several Linux vendors are happy to support their products if you buy them.
Here's a value that will never come to Mac OS: Linux is Free. Obviously that doesn't matter to you, since you consider the GPL "an entaglement", and you don't even seem to care about open source (BSD) either, since most of the Mac OS advantages have nothing to do with anything that's open source.
It's not that code associated with Linux isn't a great contribution to technology, it's that it simply won't matter on the desktop.
It may not matter on your desktop, but it matters on mine (and works just fine). I use Linux at home, on my laptop, and at work. That's relevant enough for me. Unlike some, I do not value my OS software based solely on how many other people are using it (how unfashionable!). I would like to see Linux used widely, but I don't feel it has "failed" unles
Parent
Re:Can't RTFA... (Score:4, Insightful)
Parent
Re: (Score:3, Informative)
Too bad Continuus costs too much to try, I think he would want to return to SVN after using that piece of shit.
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: (Score:3, Interesting)
Re: (Score:3, Insightful)
Sorry but in my experience it was just marginally better (and in day-to-day use, from the end-users perspective, the only real difference I felt was that I was typing "svn commit" or "svn update" instead of "cvs commit" or "cvs update").
I'm not saying there aren't cool things about SVN (like atomic commits and directories), but Subversion doesn't fundamentally change the way you work like Git.
You say "it doesn't feature distributed repositories" like that's some sort of trivial throw-away nothing. It's
Other subversion flaws (Score:3, Informative)
I just had to have a polite conversation with a professional peer who kept his home directory on his laptop, then turned on NFS shares "to get work done". I waited, very politely, until he put his laptop on the DMZ with his NFS shares turned on. Then I pulled his SSH keys for a set of sourcefor
Re: (Score:3, Informative)
Considering that both the ssh keys folder and the subversion authorization folders are both chmod 700 by default, it doesn't matter if he tosses up an NFS share. You still cannot access it without being him or root.
In the "simple" setup of an nfs server mounting the nfs share is usually independent of the user doing so, and if the other guy didn't restrict the allowed hosts of the shares, anyone on the net can do it, if he only knows the proper name, no passwords required. After you got this far, being him on nfs is just a matter of having the same user id - at least until nfs v3. Of course there are measures to restrict access, but someone exporting his home "to get work done" might not think that far ...
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: (Score:3, Interesting)
I think most criticism of svn comes from thinking that ALL it ever intended doing was to reimplement CVS in a better way. That was kinda the 1.0 goal - things have been moving on since. The svn developers have been discussing ways of making it a bit more "distributed" or able to work better in a decentralised manner.
And as you say, when subversion is "good enough" for someone the good cross platform support,
Re: (Score:3, Interesting)
The problem is you can have "everything is a file" or you can have "inconspicous metadata".
This implies a return to the structured-data days and an end to the 'Unix Philosophy'. And you kind of have that these days, with microsoft's offerings. And we all know how much you love the Registry.
Re:Can't RTFA... (Score:5, Informative)
The article linked here is light on details concerning SCM, though.
Parent
Re: (Score:3, Interesting)
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
Article (Score:3, Informative)
Q: What are the future enhancements/paths/plans for the Linux kernel? --Subramani R
Linus: I've never been much of a visionary -- instead of looking at huge plans for the future, I tend to have a rather short timeframe of 'issues in the next few months'. I'm a big believer in that the 'details' matter, and if you take care of the details, the big issues will end up sorting themselves out on their own.
So I really don't have any great vision for what the kernel will look like in five years -- just a very general plan to make sure that we keep our eye on the ball. In fact, when it comes to me personally, one of the things I worry about the most isn't even the technical issues, but making sure that the 'process' works, and that people can work well with each other.
Q: How do you see the relationship of Linux and Solaris evolving in the future? How will it benefit the users?
Linus: I don't actually see a whole lot of overlap, except that I think Solaris will start using more of the Linux user space tools (which I obviously don't personally have a lot to do with -- I really only do the kernel). The Linux desktop is just so much better than what traditional Solaris has, and I expect Solaris to move more and more towards a more Linux-like model there.
On the pure kernel side, the licensing differences mean that there's not much cooperation, but it will be very interesting to see if that will change. Sun has been making noises about licensing Solaris under the GPL (either v2 or v3), and if the licence differences go away, that could result in some interesting technology. But I'm taking a wait-and-see attitude to that.
Q: Now that the GPLv3 has been finalised and released, do you foresee any circumstance that would encourage you to begin moving the kernel to it? Or, from your perspective, is it so bad that you would never consider it? -- Peter Smith / Naveen Mudunuru.
Linus: I think it is much improved over the early drafts, and I don't think it's a horrible licence. I just don't think it's the same kind of 'great' licence that the GPLv2 is.
So in the absence of the GPLv2, I could see myself using the GPLv3. But since I have a better choice, why should I?
That said, I try to always be pragmatic, and the fact that I think the GPLv3 is not as good a licence as the GPLv2 is not a 'black and white' question. It's a balancing act. And if there are other advantages to the GPLv3, maybe those other advantages would be big enough to tilt the balance in favour of the GPLv3.
Quite frankly, I don't really see any, but if Solaris really is to be released under the GPLv3, maybe the advantage of avoiding unnecessary non-compatible licence issues could be enough of an advantage that it might be worth trying to re-license the Linux kernel under the GPLv3 too.
Don't get me wrong -- I think it's unlikely. But I do want to make it clear that I'm not a licence bigot, per se. I think the GPLv2 is clearly the better licence, but licences aren't everything.
After all, I use a lot of programs that are under other licences. I might not put a project I start myself under the BSD (or the X11-MIT) licence, but I think it's a great licence, and for other projects it may well be the right one.
Q: Currently are there any Indians who you'd like to highlight as key contributors to the Linux kernel?
Linus: I have to admit that I don't directly work with anybody that I actually realize as being from India. That said, I should clarify a bit: I've very consciously tried
Re: (Score:3, Interesting)
Q: India is one of the major producers of software engineers, yet we don't contribute much to the Linux domain.
The interviewer is not correct. There are a goodly number of India-based developers who contribute to the Linux kernel. Suparna Bhattacharya and Badari Pulavarty come to mind, there are lots more.
To some extent, the heavy influence of India-based developers on the kernel is due to IBM having a major lab there, which is being emulated by a number of other Linux-backing corporations. The quality of technology education seems exceptionally high from what I can see, and to be honest, the Indian culture seem
Re: (Score:3, Insightful)
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
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
if it isn't broken (Score:3, Interesting)
If CVS isn't broken, I have a three-legged ladder I'd like to sell you. I'll even set it up in the parking lot and, with but a modest presence of mind, balance myself motionlessly on the very top step to prove how very not-broken it really is. On one foot. And I'll juggle, too.
CVS is what happens when you've roped yourself up into some high, awkward, inaccessible place, then you discover you brought along the wrong toolbox. Subversion is a fancy pair of vise-grips with rubber handles: doesn't hurt your
Re: (Score:3, Informative)
Alternate link (Score:4, Informative)
http://www.efytimes.com/archive/144/news.htm [efytimes.com]
OMG Transaction Svr Killed Microsoft! You Bastard! (Score:3, Funny)
Article Summary Misleading (Score:5, Insightful)
Re: (Score:3, Insightful)
They don't talk about outsourcing anywhere; the word isn't even used once as far as I can tell.
The interview appears to have been conducted (and the questions provided by) Indians, so questions like "[how could we] encourage Indians to get involved and contribute heavily [to open source]?" are not surprising. I thought they were interesting questions, actually.
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
Important Differences (Score:3, Interesting)
This, people, is the key difference between Linux and Microsoft, and even Apple. Steves Ballmer and Jobs both want to be seen as visionaries, as all-knowing technological sages of our time. That isn't neccessarily a bad thing, as we've seen with the way Jobs has turned Apple around since he took over, but it does explain the difference between the philosophies of the groups: Apple and Microsoft take the approach of throwing new features in whenever they find them, so as to be seen as forward-thinking and 'next-gen', and sometimes that works and sometimes it doesn't - Spotlight being an example of something that does work (yeah, there had been desktop search before, but nothing quite that efficient and right-on-the-desktop in what can be called the 'Big 3' operating systems), and things like the are-they-in, are-they-out dropped features from Vista being an example of something that doesn't.
Linux, however, taking it's cues from Linus, approaches things from an engineering perspective. Visionary? That's all well and good, but will it run the risk of breaking? Yes? Then it's not going in. When you don't have a product to sell, it's a lot easier to base your development priorites on a more sound engineering base. Therein lies the difference; Jobs and Ballmer see themselves as visionaries, while Linus - who, whether he likes it or not, is the 'spiritual leader' of the Linux community - sees himself as 'just an engineer'. (Of course, the point could be made that Linus has the luxury of only being concerned with the kernel, where security and stability are the key things and form over function is rarely if ever required - do the likes likes of Mark Shuttleworth, Matthew Szulik, etc see themselves as engineers, or as visionaries?)
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.
Re: (Score:3, Interesting)
I work for a company that got burned on outsourcing its support to India. That said, the one guy we hired off of the outsourcing company knows more about Linux than the rest of our system administrators put together. To this day, if anybody has a question that we've found unanswerable by an American employee, we will send him a message.
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.
So negative (Score:3, Insightful)
I'm not trying to troll or insight a flame war, I'm just saying his curmudgeonly ways are getting a bit old already. At some point I imagine him being viewed as the Dvorak of Linux. Anyway, I'll understand if I get modded down, I just wanted to put my opinion in even if it's not worth much.
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: (Score:3, Interesting)
But to be sure, allow me to draw a parallel to help illustrate what I understood:
It's not that Walmart is a crappy store... it's not and they generally have some pretty good stuff there. It's the people who shop at Walmart that gives Walmart its reputation.
Is this pretty much what you're saying about Microsoft stuff? It's not that the products are bad--they're not. It's the people who use Microsoft products that give Microsoft its bad r
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: (Score:3, Insightful)
Both do their job (CVS since years). SVN does some trivial things better than CVS.
SVN doesn't do the job because there's no built-in merge tracking, which leads to serious merge bugs.
Repeated merges (bi-directional merges) between branches generates false positives (the lack of merge tracking causes SVN to re-merge previously merged code.) The lack of true renames, means that you can lose changes during a merge if renamed files are modified on both branches. The svnmerge.py script only works at one