Sub-version is not a misnomer

Recently, I had to move a fairly large (few thousand classes) codebase to a new source control system. The nice thing is, there was no restrictions on the system to move to, beyond it having to be free.

Foolishly, I thought that it’s high time I try out subversion. After all, some people on the good ship non-retarded-people-who-should-not-be-dismissed-out-of-hand-at-all-times had said it’s quite usable and orders of magnitude superior to cvs.

Oh how foolish I was to fall into such candied words! Needless to say, those well intentioned people have now been frogmarched off the gangplank, where they can bob around indefinitely in the sea of turds without causing any further damage with their wild fanciful ideas. It’s amazing how easy it is to mistake ‘functional’ with ‘usable’.

So, what is so awful about subversion? Well, the requirements for one. While it does have a standalone server, the general consensus is that it’s much better to go with the apache module crap. Now, this leads to a nice catch-22. No sane person is going to install apache2 on a production worthy machine, and no sane person will install their source control system on a non-production worthy machine.

What were the good subversion folks smoking when they decided to go with apache2? Were they all collectively strung up by the ankles then dropped on their soft little heads? Even more amazing, they decided this years ago and have steadfastly stuck to this bizarre dependency.

Which brings me nicely to my next point. How on earth can this piece of software be in development for over three years and still barely manage to fart out a mockworthy version 0.34? Sure, it kinda works, it does the basics. Some of the extra features are handy, but really, what on earth have these people been doing for 3 years?

The list of stuff they brag about isn’t that mindblowing either. atomic commits exist in every single control system I’ve ever heard of (except CVS). Parseable output? Gosh, what a killer feature that is. Must have taken years to design and implement correctly.

Still, all that can be forgiven if it integrated well with ‘stuff’ and had some nice clients. Alas, every client I tried didn’t even come close to the worst of cvs clients out there. The java ones were almost hilarious in their amateurish design and presentation. That is, if they even ran. Many of the clients would simply refuse to run, they’d demand v0.33 of some native lib, when only v0.34 is available. The native lib, needless to say, only compiles on linux and windows. The native OSX client seems to be yet another ‘for fun’ project that’s mostly useless.

The whole thing seems to be ‘lets reinvent cvs with all its warts, and slap on a few nice features on top’. I went in expecting some sort of paradigm shift, the kind of ‘aha!’ one feels when switching from emacs to IDEA, from Linux to OSX; a lifechanging experience that made you a better human being. Instead, all I ended up with is the retarded cvs people churning out more crap under a different name. Sub-version is, alas, sub-par in ways that can’t really be remedied without spending another 3 years undoing the evils of the last 3. Ah well, back to unglamorous CVS for me.

30 Responses to “Sub-version is not a misnomer”

  1. insurgent Says:

    It’s immature but self-hosting now: Stellation, part of the Eclipse project http://stellation.eclipse.org/
    Might be worth a look before going back to CVS.
    (don’t blame me if it sucks, though)

  2. Geert Bevin Says:

    Why don’t you just use bitkeeper or perforce and get it over with.

  3. Will Sargent Says:

    “tomic commits exist in every single control system I’ve ever heard of (except CVS)”

    …and Rational ClearCase. I figure you haven’t used that — it’s too fat a target to miss if you have.

    I like Perforce. It’s one of the few programs I’ve used where I still like it after a few years. Still, it’s an incremental advance over CVS, rather than a revolutionary one.

    Some people like AccuRev, but I haven’t played with it.

  4. Robert Lowe Says:

    “No sane person is going to install apache2 on a production worthy machine…”

    Why not?

  5. Anonymous Says:

    一个测试。

  6. boxed Says:

    Visual Source Safe doesn’t have atomic commits. In fact, VSS has this nice feature called auto-corruption, where it corrupts the data randomly every once in a while.

    Btw, the only thing you get with the apache module for subversion really is WebDAV support. Not that big of a deal.

  7. Anonymous Says:

    Did you look at arch?

  8. Jason Carreira Says:

    I never understand why people will spend 1000′s of expensive developer time developing a code base, but don’t want to spend a dime to manage and protect it.

    Spend the money. Get Perforce. It’s fast, reliable, easy to manage (especially compared to some of the other SCM tools), and, oh, did I mention FAST?

  9. Anonymous Says:

    Will,

    Do you have any links to back up your allegation that that Rational ClearCase does not support atomic commits?

    I’d be interested to know.

  10. Will Sargent Says:

    “ClearCase does not have native support for atomic checkin. However, the concept is sufficiently important that some third parties have attempted to implement it using wrappers, with varying degrees of success.”

    http://www.perforce.com/perforce/tig/cc.pdf

  11. Mike Mason Says:

    Subversion is actually very good — lots of people here seem to agree that Perforce is the SCM of choice, and there have been lots of times where a Subversion feature has worked just like Perforce, and given me a warm fuzzy feeling.

    You don’t need Apache, just run the standalone server. Version 0.34 is pretty much there in terms of stability (as you’d know if you followed the dev list) and will be entering 1.0 beta in the next month or so. Why is the arbitrary “1.0″ tag required? Version numbers are pretty meaningless on most open source projects, you know that!

  12. Corby Page Says:

    I have been using Subversion for six months on a similarly-sized project, and it has rocked.

    I am using the extremely capable TortoiseSVN client for my work.

    Yes, Subversion is a marked improvement over CVS. It supports these really advanced features that CVS has not yet mastered… like removing a freaking directory!

    Some of Hani’s stuff is good. But when he starts crapping all over really valuable projects just because he is short on blog material for the week, it feels extremely self-serving.

  13. Mr. Pin Says:

    Ha -ha-ha. Hani could not configure Sub-version!

  14. Sam Newman Says:

    There is a simple reason why there has been no decent, mature, opensource replacement for CVS, and thats because its a very complex problem space. ClearCase is supposed to be fantastic, but has a steep learning curve and is expensive (most people I know in medium to large teams use it, but they have the benifit of dedicated SCM people). I’ve heard good things about Perforce but have yet to use it. CVS with the SmartCVS client will have to do for the moment.

  15. Sam Pullara Says:

    There is only one source control system worth paying for: Perforce. Every time I have to use CVS it is torture.

  16. Will Gayther Says:

    Well, if “Version numbers are pretty meaningless on most open source projects”, why the hell wouldn’t you just start with a 1.0 to begin with? Oooh, right, because…you do think they’re meaningful, huh?

  17. Jon Tirsen Says:

    “atomic commits exist in every single control system I’ve ever heard of”

    Ohhhh, you should try out StarTeam. You’d be amazed on how crappy it is!!

    I’d really like to hear a bile about StarTeam, that’d leave me rolling on the floor laughing.

  18. Jon Tirsen Says:

    “atomic commits exist in every single control system I’ve ever heard of”

    Ohhhh, you should try out StarTeam. You’d be amazed on how crappy it is!!

    I’d really like to hear a bile about StarTeam, that’d leave me rolling on the floor laughing.

  19. funkattack Says:

    Thank you, thank you, thank you,
    not only for all the bile that is so joyfull to read in your blog, but for the honor and self esteem reading them gives me back.
    Long times I felt like a lazy and dumb bastard. I have that thing with complicated installation instructions, I mean longer than three liners. I didn’t know why I don’t like’em, was it my lazyness? Or even worse was it my dumbness, not understanding some alleged enormous benefit that whatever dingithinglily piece of software promises?
    There alwas was the certain itch of fear, that I might be missing most interessting things that way.
    Nowadays nothing itches me no more, I am absolutly confident my sort of lazyness and dumbness is a sign of smart character. Why bother with something, that can’t keep me interested for more than three lines?
    In the case of subversion I was alwas shure that the project stinks, there is just no good reason for copying the user interface of cvs.
    Biling over cvs never would come up to my mind, even though it is so counterintuitive. It’s just been around for too long and every day it’s arround I take it as a living sample of the open source community’s incompetence not to bring up anything better.
    So why should I bother and install subversion, which is definitely more than a three liner. An article in the honorfull iX magazine (http://www.heise.de/ix/) this February got me close to doing so. Luckily reading the installation instructions kept me from it again.
    And here comes your article, thank you thank you, for readjusting my sense of smell. I wont look at subversion for another year.
    No itching!

  20. mark Says:

    subversion/apache-ssl is a secure way of accessing your source code repository from behind a firewall. i’ve been using it this way for a while and it provides a lot of flexibility. subversion handles the SCM. apache handles the secure flexible service providing.

    i’m glad they decided to build over apache. it’ll be even better for open-source projects. people who cannot connect to a CVS repository will likely be able to use a subversion repository.

  21. Anonymous Says:

    If even I am able to set up a subversion repository without any problems it probably means you are the one who is retarded :)

    Anyway, I’ve used subversion for a while now and it is really good. I just wish the standalone version would allow better control over the repository access.

  22. Anonymous Says:

    It seems that people who criticize Subversion in the orginal article and in this forum here have highly emotional “approach”.

    A typical indication for this is to start with judgement and afterwards “finding” proofs for it (instead of presenting a analysis including pro’s and con’s and drawing conclusions). Coming along with logical breaks in these “proofs”, for example criticizing own wrong assumtions (e.g. ignoring the standalone server but complaing about the pretended dependecy on Apache 2).

    It is also typical emotional to say: “I already hated Subversions before I took a look at it. Then I took a look at it, and I am right with hating it. And I found Persion Y who also hates it, so this also shows that I am right…” This also does not really demonstrate professionality. As manager, I would fire such developers, because of personality deficities.

    Whatever the reason for these emotional point of view is. Maybe the new boy-friend of his ex is using Subversion, or whatever… ;-)

    Markus.

  23. John Kwon Says:

    If you have ever used Envy for version control (alas with Smalltalk), you’ll think that EVERY version control system in the world was written by retarded underwear gnomes.

  24. Terry Says:

    Anyone used Subversion for projects that contain just binary files?

    Is there a check out system for that in SVN that works like the Edit/Commit process in CVS?

    If not, how can working with binaries be accomplished using SVN?

    thanks,

    Terry

  25. Jon Says:

    Envy is bullshit!!! I was forced to work with it for some time – never again!!!

  26. Rasmus Lund Says:

    I found it really easy to install Subversion stand-alone server. As I see it, the *ability* to integrate with Apache is just like the *ability* to use the Subversion-plugin with Eclipse. You go like: “Subversion *has the ability* to integrate with Apache – and I hate Apache – thus – I hate Subversion…”. I’t like saying: “Crap – there is a CVS-client for Windows, and I really hate Windows – thus I hate CVS…”. Where’s the logic mate??

  27. bjorn Says:

    It’s 2004. Subversion works perfect – and has good clients :) happy now?

  28. Bill Krahmer Says:

    What’s wrong with installing Apache 2.x on a production machine? Was it not stable back then?

    SVN is the best now.

  29. Zarar Siddiqi Says:

    Moving files with SVN kicks ass.

  30. CJ Says:

    There’s not much to bile about SVN (even the bile on this post isn’t strong enough; I could easily put it down with few obvious arguments). But you will indeed have much more fun biling on M$ Visual Source(un)Safe, believe me!

Leave a Reply