Slashdot is powered by your submissions, so send in your scoop


Forgot your password?
Linux Software

Linus on Subversion, GPL3, Microsoft and More 350

victor77 writes "Linus has repeatedly slammed Subversion and CVS, questioning their basic architecture. Subversion community has valid is Linus's statement?" This and many other subjects are covered in this interview with Linus.
This discussion has been archived. No new comments can be posted.

Linus on Subversion, GPL3, Microsoft and More

Comments Filter:
  • Can't RTFA... (Score:3, Interesting)

    by shish ( 588640 ) on Sunday August 19, 2007 @09:20AM (#20285255) Homepage

    [Microsoft][ODBC SQL Server Driver][SQL Server]Transaction (Process ID 128) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
    Indeed :|

    Linus has repeatedly slammed Subversion and CVS, questioning their basic architecture.
    Did he slam it, or did he say that it's fine, just not appropriate for a project as distributed as the kernel?
  • Re:Can't RTFA... (Score:1, Interesting)

    by Anonymous Coward on Sunday August 19, 2007 @09:50AM (#20285399)
    Good thing you're careful to add that caveat centrally managed.
    Since as you must know that makes SVN totally different from the others like git, mercurial and bazaar.

    And if you want to get into things that CVS and Microsoft's crappy VSS can do but SVN can't - how about aliasing files and directories such that X trees share some common files that must be in sync yet managed? The very SVN model prohibits this without some messy client or server side scripting.
  • Re:SVN vs. CVS (Score:5, Interesting)

    by Dan Ost ( 415913 ) on Sunday August 19, 2007 @10:45AM (#20285683)
    I've never used git on any project big enough to have multiple developers, but I use git for my one-man-projects for the simple fact that it's so easy to create a repository.

    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).
  • Re:Article (Score:1, Interesting)

    by Anonymous Coward on Sunday August 19, 2007 @11:04AM (#20285829)
    FreeBSD, the whole OS, not just a kernel, is done on CVS.
  • Re:Article (Score:5, Interesting)

    by DaleGlass ( 1068434 ) on Sunday August 19, 2007 @11:07AM (#20285857) Homepage
    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.
  • Re:Can't RTFA... (Score:5, Interesting)

    by thePsychologist ( 1062886 ) on Sunday August 19, 2007 @11:20AM (#20285941) Journal
    Yes this is extremely old news. I thought it would be something new, but then I see the comment from the SVN guys is dated 2006: last year for people who keep track of time.

    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 (, 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 .svn metadata folder in each normal directory; hence if you have 1000 normal directories you get 2000 directories.

    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.
  • by One Childish N00b ( 780549 ) on Sunday August 19, 2007 @11:41AM (#20286067) Homepage
    As to my 'iconic image', I tend to dislike that part personally. I'm not a great public speaker, and I've avoided travelling for the last several years because I'm not very comfortable being seen as this iconic 'visionary'. I'm just an engineer, and I just happen to love doing what I do, and to work with other people in public.

    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?)
  • if it isn't broken (Score:3, Interesting)

    by epine ( 68316 ) on Sunday August 19, 2007 @12:01PM (#20286179)

    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 hand so much when you have to grasp with extreme force the bolt head with no remaining flat edges, because you're too damn lazy to rope yourself back down to get the tool you should have used in the first place.

  • Re:GPL Comment (Score:1, Interesting)

    by Anonymous Coward on Sunday August 19, 2007 @12:03PM (#20286193)
    He said a GPL. The GNU GPL doesn't allow any additional restrictions, and lazy people commonly use the phrase "the GPL" to refer to the GNU GPL (like they say "wiki" when they mean Wikipedia), but that isn't what he said, so it's reasonable to assume he had a different GPL in mind, namely the one whose simple licensing terms he went on to spell out.
  • by erroneus ( 253617 ) on Sunday August 19, 2007 @12:30PM (#20286367) Homepage
    Wish I had some mod points but I believe you make a really good point.

    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 reputation.

    I think there is a lump of truth to this assertion. Microsoft is a lot more ubiquitous and available than many competing products. Certifications demonstrating expertise typically only require enough money and a list of answers to acquire.

    I think this is an assertion that requires some meditation: It's not the products, it's the users...
  • by m2943 ( 1140797 ) on Sunday August 19, 2007 @01:47PM (#20286817)
    The Linux kernel is, I think, a classic case of 'good enough'. It's what people are used to, and it's 'good enough' to be used fairly widely, but it's good enough in exactly the sense DOS and Windows were 'good enough'. Not great technology, just very widely available, and it works well enough for people and looks familiar enough that people use it.
  • Re:Can't RTFA... (Score:3, Interesting)

    by thenerdgod ( 122843 ) on Sunday August 19, 2007 @01:53PM (#20286843) Homepage
    What you're really asking for is filesystem-level versioning (splitting and merging)

    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.
  • by thephotoman ( 791574 ) on Sunday August 19, 2007 @02:18PM (#20287003) Journal
    I'm not so sure about that.

    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.
  • Re:PARADIGM SHIFT! (Score:5, Interesting)

    by dkf ( 304284 ) <> on Sunday August 19, 2007 @02:19PM (#20287011) Homepage

    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.
    You know, that sounds so much like an advertorial! Would you care to provide a little bit of original analysis to go with your otherwise-unleavened hype? In exactly what way does a distributed source code management system change the way you work? (Remember, some of us have been using 'cvs annotate' and 'svn blame' over high-bandwidth networks for a long time now.) While you're at it, do distinguish between the various aspects (e.g. multiple repositories vs. braided versioning) even if one really implies the other.

    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.
  • Re:Can't RTFA... (Score:3, Interesting)

    by SnowZero ( 92219 ) on Sunday August 19, 2007 @02:21PM (#20287019)
    It may be a slam, but its true. SVN had a very careful design that they put a lot of effort into -- unfortunately they chose the wrong model to start from, which severely limited what they could do compared to distributed version control systems.
  • by jabelli ( 1144769 ) on Sunday August 19, 2007 @02:40PM (#20287095)
    There are lots of clients to choose from at the site []. If you don't want or need a file browser plug-in/Explorer extension/IDE integration, there are a number of apps to choose from. Granted, TortoiseSVN and Subclipse track the Subversion releases more closely than the others. Personally I use a combination of TSVN with Kdiff3. I also use AnkhSVN in Visual Studio, just for the auto-add and file icons.
  • Re:PARADIGM SHIFT! (Score:4, Interesting)

    by Anonymous Coward on Sunday August 19, 2007 @02:55PM (#20287167)

    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.

  • by Anonymous Coward on Sunday August 19, 2007 @03:23PM (#20287359)
    I think that Linus doesn't really care about Linux competing in the market place.
  • Re:Can't RTFA... (Score:3, Interesting)

    by styrotech ( 136124 ) on Sunday August 19, 2007 @04:00PM (#20287579)
    For those that don't know the functionality of svnmerge will be part of the upcoming subversion 1.5.

    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, wide support from 3rd party tools, friendly easy to understand interfaces for version control newbies and Windows users etc etc make it a good choice overall. It has successfully brought open source tools (often dragging Apache with it) into previously MS only development shops and displaced a lot of VSS installations. It has opened the eyes of a lot of Windows developers to the world of open source.
  • Re:Article (Score:3, Interesting)

    by Daniel Phillips ( 238627 ) on Sunday August 19, 2007 @04:16PM (#20287675)

    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 seems to be oriented towards higher things than money.
  • Re:Can't RTFA... (Score:3, Interesting)

    by Crayon Kid ( 700279 ) on Sunday August 19, 2007 @04:52PM (#20287811)
    Oh come on, you can't tell me you've moved from CVS to SVN and haven't felt a damn thing. It is bloody better. It doesn't feature distributed repositories, which is Linus' pet peeve, and probably some subtler stuff, but you can't honestly compare it to CVS and say it's "totally unremarkable".
  • by Anonymous Coward on Sunday August 19, 2007 @06:44PM (#20288395)
    "However, the man never seems to have anything positive to say. Really, is his opinion all that relevant anymore?" - by Seven001 (750590) on Sunday August 19, @01:37PM (#20286737)

    He's VERY relevant, & in 1 regard (imo, @ least) - because Mr. T. holds the dev team to a fairly 'small' (purely relative term) on the CORE development, & the kernel of the LINUX(es) in HIS control?


    Imo, Linus T. keeps what happened to UNIX's from happening to LINUX - fragmentation, SO bad, that one binary on 1 version of *NIX won't run on another version of *NIX...

    I.E.-> IMO? Mr. T.'s control @ the "kernel/core level" of the Linux OS helps (partially @ least) to keep Linux from splintering into a "bunch of warring factions" that cannot "get along" basically...

    & THAT is what happened to UNIX in general!

    (E.G.-> Between Bell Labs original & say, BSD variants (this particular *NIX variant case in particular bugged ME recently - I saw that the multiplatform CIS TOOL (a security benchmark) would run on FreeBSD, but not OpenBSD... though they come from the SAME BASE CODETREE (Berkeley code)), Solaris, SCO, HP-UX, IBM AIX, Linux etc. et al...)

    Imo? Guys, today??

    We should ALL have been running some form of UNIX on our PC's, but this 'war for domination of the PC OS market' (for lack of a better expression on my part, but this WAS what it was no doubt about it between various *NIX vendors on ALL hardware platforms) did THAT concept, right in...

    Good opening for Bill Gates & crew, really...

    They took the biggest share of the market, with inferior OS @ the time no less, in DOS, & even later in Win3.x/9x! UNIX & Os/2 were technically superior... IBM ditched out on Os/2 imo, & UNIX vendors could NOT agree on std.'s & a unified point of control (& thus, today you have what you have, between *NIX's: binary incompatibilities)... Linus T. stops that for Linux @ least.

    However/today? Windows NT-based ones ARE DEFINITELY "on par" with any *NIX, & better in many respects (including device driver capability, more refined applications base, & probably larger than on *NIX in general + of higher quality & compatibility with the majority of users out there & what tools they use, & overall development for the Microsoft Windows NT-based OS platform (where the MONEY IS MADE TODAY, mostly - & money? TALKS LOUD! They say, "talk's cheap", but... not when money does the talking!))

    Money... it spurs developers & companies to create product, more than anything imo, because we all have to eat/make bills/plan for our future & those of our family etc. (big motivator).

    All in all? L.T. & the folks working on Linux are good people, who must REALLY believe in what they're doing... they kept @ it, to compete with Windows, where even HUGE CORPORATIONS LIKE IBM, who had Os/2 which WAS a 'better DOS & better Windows' & better OS period, than Win3.x by a LONGSHOT, gave up.

    Pretty impressive that, imo @ least.

    I personally think Mr. T. is positive on many notes, very thoughtful, and very, VERY intelligent... from a number of his statements in said interview in fact.

    My fav. being this one:

    "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"

    Because, that man's RIGHT AS RAIN & you can tell he is of a developer's mindset: The "devil's ARE in the details"...

    Without working on them? YOU CANNOT SOLVE THOSE 100,000 foot view visions/problems others have. Every BIG problem, has its roots in MANY smaller ones.

    AND, largely imo?

    Well, & others MAY disagree with me here:

    I think ANYONE can 'do the broad strokes' & spot a problem or whatever...

  • Re:Can't RTFA... (Score:3, Interesting)

    by smenor ( 905244 ) on Sunday August 19, 2007 @07:15PM (#20288571) Homepage

    I tried DARCS awhile back (like you, I was awestruck by the feature set - especially distributed version control and Haskell)

    It seemed dog slow even for a small repository, and was clunky to use (coming from CVS).

    Like I said - this was awhile back - so maybe they've fixed those issues, but following the tutorial, I was up and running with Git in no time and the commonly used commands are more or less identical to CVS/SVN (though it is a bit idiosyncratic in that it requires something like "git commit -a" where you would normally just use "cvs/svn commit").

  • Re:PARADIGM SHIFT! (Score:3, Interesting)

    by OptimusPaul ( 940627 ) on Sunday August 19, 2007 @08:53PM (#20289117)
    When I first heard this crap about Linus not liking SVN I was thinking what a dork, SVN is great. But then this post opened my eyes. This reminded me of all the crap I have to deal with in SVN, it's a pain. I also have to be honest, I've never heard of git, now I must find out more about it.
  • Re:PARADIGM SHIFT! (Score:3, Interesting)

    by Daniel Phillips ( 238627 ) on Sunday August 19, 2007 @09:19PM (#20289259)

    For a large percentage of corporations a centralized repository is the only way to go. I think git has the right idea but needs to integrate with a centralized server.
    What happens in the large corporate is, devs end up keeping their "working copy" of the code on their local machine because if they just checked their experimental/broken stuff in, other devs would complain. Same for creating branches in the central repository, if you are doing it for you own experiments you will get unpopular fast. So what happens instead is, a dev makes changes to their checked out copy and does not check in for days or weeks at a time, then bits of this work get lost for one reason or another. Meanwhile, development on the trunk eventually orphans the experiment, merging is too much work and chances are, the whole experiment will get lost or rot too much to be useful and get thrown away. Don't tell me it doesn't happen - a lot.
  • Re:Can't RTFA... (Score:5, Interesting)

    by SnowZero ( 92219 ) on Sunday August 19, 2007 @10:26PM (#20289589)

    No Linus wrote Linux as a reimplementation of BSD
    Actually Linus started out rewriting Minix as a hobby, and it just so happened he chose the right license and was good an getting people to work with him. It amazes me that after all this time there are still people who don't understand why Linux succeeded... it was by building a better community, not technical superiority. BSD has had a great technical history, but quite a few community problems, leading to community splits and forks. Linus, as a good manager, has managed to hold Linux together, which is an achievement in itself. Of course, with open source "win" and "lose" isn't that meaningful; Linux and *BSD are healthy and continuing in their development. Who cares if your community is the biggest, if your community develops the software you need.

    during the period that AT&T sued to stop the distribution of BSD. Had BSD not been held up in court, there would have been no need to rewrite BSD from scratch using inferior networking code.
    So, with the SCO suit, BSD was able to make a comeback, right? Or, maybe you are overestimating the impact of the lawsuit. Also, if the BSDs could not stick together, what makes you think all the Linux people could work with them? Theo and Linus sharing the same CVS repository?... I doubt it.

    When Novell bought AT&T's Unix labs it ended the frivilous lawsuit against BSD, but by that time, Linux had gained so much marketing buzz that it overwhelmed both commercial Unix and the free BSD, serving to water down any hope for either of the candidates to prevent the expansion of Micorsoft's DOS and
    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.
  • Solaris Desktop (Score:3, Interesting)

    by fm6 ( 162816 ) on Sunday August 19, 2007 @11:36PM (#20289957) Homepage Journal

    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.
    Linus seems unaware that the preferred desktop on Solaris is now a rebranded version of GNOME.
  • Re:PARADIGM SHIFT! (Score:3, Interesting)

    by turbidostato ( 878842 ) on Monday August 20, 2007 @12:24AM (#20290197)
    "What happens in the large corporate is, devs end up keeping their "working copy" of the code on their local machine because"

    Because they usually don't know the tool or the tool's potential.

    "if they just checked their experimental/broken stuff in, other devs would complain"

    I've been working both on Subversion and CVS (among others) and never experienced it. Why? Maybe because I knew about the use of the tool; about how to deploy "this_is_head" moving tags and how to properly use branches, so one developer's experiments doesn't break other's work and still they are "near enough" to main development lines to merge frecuently as needed (and no, abandoned branches were not a problem since they can be pruned out when needed no more).

    "Same for creating branches in the central repository, if you are doing it for you own experiments you will get unpopular fast."

    That's even more extraneous. Why other developers should have to give a damn about branches they don't use? Clearcase, for instance, is mostly based on the "developer branch" concept to great amount and while the product isn't the most popular among developers, it is not because the "developer branch" concept which is the one they tend to like the most.

    "So what happens instead is, a dev makes changes to their checked out copy and does not check in for days or weeks at a time"

    a) They ignore the tools possibilities
    b) Their company ignore the advantages of founding proper SCM (people, tools and time) and the SCM tool manager only too often ends up being one of them, or someone without the knowledge and too overburden to do a proper work.

    "then bits of this work get lost for one reason or another"

    And then the proud git user's hard disk fried and his git repo is lost all the same. And then the devolper gets hit by the bus, or resigns and nobody understands what's the hell on his harddisk.

    "Meanwhile, development on the trunk eventually orphans the experiment, merging is too much work"

    That's just the natural outcome of a too long lived branch, no matter is you use a central or a distributed repo. It is the code the one that distances, not the tool that manages the code.

    Subversion should have proper branching and merging. CVS should properly manage whole hirarchies. Both of them should properly handle deltas. But they are all limitations of the tools, not flaws on the paradigm. Surely distributed SCM has his place but centrally managed SCM has it too and it's much more important the former than the latter in corporate environments. Maybe in a future there will come a tool that will allow seemlessly for proper central or distributed SCM, and I can tell I'll be glad for it, but I can assure that the central paradigm will stay strong within corps, because that's what's needed.
  • Re:Can't RTFA... (Score:3, Interesting)

    by DrXym ( 126579 ) on Monday August 20, 2007 @04:41AM (#20291079)
    I'm sure git is wonderful in all sorts of change control related situations but Subversion is a great source control system too partly because it is so unremarkable - it just works. It has also got a great deal more cross-platform support and tools than git. Personally I use it as a distributed filing system because it has fantastic integration with Windows Explorer (via TortoiseSVN) so I can checkin files that I intend to share between machines (Linux & Windows).
  • Re:PARADIGM SHIFT! (Score:3, Interesting)

    by ajs ( 35943 ) <ajs AT ajs DOT com> on Monday August 20, 2007 @08:50AM (#20291947) Homepage Journal

    [git] gives you private branches and commits
    Subversion provides the capability for private branching an commits. Problem is, you failed to define "private". If you mean private in the sense that you can work on your own without having others' changes affect your personal work area (or visa versa), then subversion provides private branching. If you are talking about privacy in the sense of others not knowing what you're doing, then you need svk for that.

    And specifically with git vs. SVN, git offers true branches and tags (unlike SVN's bizarre, nonsensical "simulations")
    Subversion provides true branches. It just does so in a directory-tree model. There's no mathematical difference between subversion's branches and those of another VCS, just an interface difference which I have come to appreciate. I'll admit, though, that there was a significant mental hurdle for me to get over. Tagging in subversion is another case that feels "odd", but is mathematically identical. Because copying a tree doesn't feel like adding a tag, it's off-putting at first, but there really is no difference due to the copy-on-write nature of subversion's directory management.

    and true merges.
    You phrased that incorrectly. Subversion has true merges. What it lacks is merge tracking. For that you need to use something like svk.

    For instance, in SVN, how do you move a changeset from the tip of one branch to another?
    Of course, you're using the terminology of git to ask a subversion question, which isn't exactly reasonable. The real question, here, is how you move changes between branches which is fundamentally an abstraction of merging. As noted above, the merge is trivial. The merge tracking (that allows consistency to be maintained post-merge) is not in subversion's toolkit. svk provides this, and moving changes between branches sensibly is quite easy using it.

    Instead of considering the deeper, underlying issues, the SVN team just cloned CVS's behavior and made it cleaner.
    This is absolutely untrue. On so many levels that it demonstrates how little you know about those two tools. You cannot emulate subversion using cvs because subversion implements many things that cvs never did (directory tracking, repository versioning, copy/move-on-write, among many others). If you don't understand the tools, you are best avoiding a debate about their capabilities.

Mathemeticians stand on each other's shoulders while computer scientists stand on each other's toes. -- Richard Hamming