Slashdot Mirror


Interview with Tom Lord of Arch Revision System

comforteagle writes "Every revision control system has its supporters and detractors, but none is as polar as Arch. Either you hate it or think it is the best thing in revision control ever. Built more around what our beloved kernel hackers use (BK), Arch is definitely a departure from CVS and Subversion. I've interviewed Tom Lord, Arch's daddy, about the application, and he has some -ahem- interesting answers and opinions."

99 of 334 comments (clear)

  1. I'm left out... by Three+Headed+Man · · Score: 5, Funny

    "Every revision control system has its supporters and detractors, but none is as polar as Arch. Either you hate it or think it is the best thing in revision control ever."

    They forget those of us who have never heard of it before.

    --
    I'm probably at the karma cap. Mod up a funny troll instead, it lightens the mood :)
    1. Re:I'm left out... by Curtman · · Score: 4, Interesting

      They forget those of us who have never heard of it before.

      And those of us who have heard of it, but have no idea if its a good thing or not.

      I noticed freedesktop.org has started using it to some degree. But like I say, I have no idea if thats a good thing. It is slightly inconvenient in that I have to go read yet some more docs to use it. :(

    2. Re:I'm left out... by themassiah · · Score: 4, Funny

      Since when has being completely uninformed stopped any Slashdot readers from making informed opinions and spreading them around?

      You must be new here.

      --
      - Sometimes you're the pidgeon, sometimes you're the statue.
    3. Re:I'm left out... by grub · · Score: 3, Funny


      He's got a much higher UID than you but still... I'll wager 200 Quatloos on the newcomer! duu du DAA DAA DAA DAA DAA daa da daaa....

      --
      Trolling is a art,
    4. Re:I'm left out... by sketerpot · · Score: 4, Insightful

      It stops many, but you don't see them. In other words, you're mistakenly drawing conclusions from a skewed sample.

    5. Re:I'm left out... by Humble+Legend · · Score: 5, Informative

      I used Bitkeeper for about two weeks, before being told that since I'd said this on the arch list: "I'd cringe if I had to use Bitkeeper", and because of my public pro-stance on free software (as they had researched from my homepage - http://www.souldound.net/), I was on their shitlist and they would not sell me, and therefore the company I currently work for, a license to use Bitkeeper.

      Needless to say, I found this a little confronting, took stock of my temporary moral slip in even considering the use of proprietary software (forgive me Free Software gods), and promptly got stuck into arch/tla, which I've now been using for about a month.

      In my experience, tla is more flexible - the design really does reach high, although the learning curve (at the moment at least) is a little higher for sure - you really do have to go read the tutorial, wiki, etc. I found the people on the gnu-arch-users@gnu.org mailing list to be very helpful though - even if personal/ power tiffs were going on, those involved never ceased to be supportive in replying to my questions.

      Hope that's a useful datapoint,
      Zenaan

      --
      * The Humble Legend * Debian Enterprise: http://debian-enterprise.org/ * Homepage: http://soulsound.net/ * PGP Key: h
    6. Re:I'm left out... by MrResistor · · Score: 4, Insightful

      I used Bitkeeper for about two weeks, before being told that since I'd said this on the arch list: "I'd cringe if I had to use Bitkeeper", and because of my public pro-stance on free software (as they had researched from my homepage - http://www.souldound.net/), I was on their shitlist and they would not sell me, and therefore the company I currently work for, a license to use Bitkeeper.

      Yeah, it's too bad Linus seems to be so happy with it, because Larry McVoy is a real dick. I posted something here on /. about how I don't think their "you can't develope revision control software" clause would hold up in court, and he personally flamed me (through email, of course) with all this crap about how I don't know anything and had no right to an opinion since I hadn't built a multi-million dollar company.

      IMHO, the man's a complete asshat, which is really a shame, because he seems to have a good product that a lot of developers will never touch because of his childish behavior.

      --
      Under capitalism man exploits man. Under communism it's the other way around.
    7. Re:I'm left out... by pnot · · Score: 2, Funny

      because of my public pro-stance on free software... I was on their shitlist and they would not sell me, and therefore the company I currently work for, a license to use Bitkeeper.

      Holy hell. That's not so much unprofessional as infantile. Let's hope Linus never pisses Larry McVoy off...

      Linus: "Hey, that's a pretty nasty-ass shirt you're wearing!"
      Larry: "Yeah? Well, in that case I revoke your BitKeeper licence! How d'ya like them apples?

    8. Re:I'm left out... by Anonymous Coward · · Score: 5, Funny

      What is it with version control and asshats? It's like they're attracted to each other or something. I doubt anyone would deny McVoy is an asshat, and Tom Lord certainly hasn't seen daylight in years do to his choice in rectal headwear. The SVN devlopers can be asshats from time to time. I'm not sure if the CVS authors are asshats, but they're probably dead by now anyway. A ClearCase developer punched a baby once (in his defense, the baby was being kind of a dick).

      I rest my case. Version control makes asshats out of people.

    9. Re:I'm left out... by fooishbar · · Score: 2, Informative

      Only some of the xapps are in TLA -- most are in CVS. There are some projects using tla (most notably debrix), just as there are some projects using CVS and SVN. Officially, we're agnostic.

      --
      -- x hacker, iterant idiot (with apologies to michael meeks)
  2. Shouldn't headline read by Anonymous Coward · · Score: 5, Funny

    Interview with Tom, Lord of Arch Revision System

    1. Re:Shouldn't headline read by lukewarmfusion · · Score: 4, Funny

      Should someone be welcoming our new ArchLord?

  3. How to download the source: by Anonymous Coward · · Score: 5, Funny

    # cd /usr/src
    # export CVSROOT=:pserver:anoncvs@cvs.gnuarch.org:/usr/cvsr oot
    # cvs login - the password is anoncvs.
    # cvs checkout arch

  4. Tact? by keiferb · · Score: 4, Funny

    This guy should go into politics! His brain-mouth cable has no filter on it. It'd be nice to hear politicians describe their colleagues' bills as "a horrible, horrible design based on a few very good ideas" or "clunky junk".

    I'd love to hear his opinion on the vi/emacs debate... that'd get some heads rollin'!

    1. Re:Tact? by Vellmont · · Score: 2, Interesting

      I dunno, the best software I've seen has come out of derision of bad software. I don't think the creator of Postfix loved sendmail too much. Many people dislike BIND and have come out with arguably better alternatives.

      The other extreme is just developers who hate the popular software just for the sake of hating popularity. That seems to be the case with DSpam over Spamassassin. I don't think that's the case here however. While CVS is reliable software and people know how to work around its flaws (and the creator of arch fully admits that) it is at the same time fairly flawed.

      I'd tend to agree that CVS is klunky in the way he describes. I still use it of course since it gets the job done. I've not tried subversion at all, so I can't comment on how well that fixes the problems of CVS.

      --
      AccountKiller
  5. Design and License by Anonymous Coward · · Score: 2, Interesting

    Well, he slams the subversion design pretty good. I don't know anything about the design of subversion of either Arch or Subversion to comment on either - maybe someone else can, but subversion seems to be gaining quite a following from what I've seen.

    Look at the way the Linux kernel project works, at least for developers who are willing to drink the koolaid of Bit Keeper (BK) licensing.

    I guess that's a different koolaid than what the Stallman/Gnu cult members are drinking.

    1. Re:Design and License by wildjim · · Score: 2, Interesting

      I personally think he has a good point about the Subversion design. VCS systems are pretty complicated beasts when it comes down to it, and deserve a fair bit of work on the design before doing any production-oriented coding.
      From what I remember of Subversion, looking at it on-and-off over the years, they have ended up redesigning it several times over, while trying to produce code that would end up being part of the finished product, thus throwing away large portions several times because it didn't fit the new design, rather than the code could be done in a better way.
      I also found it a little strange to be trying to basically implement a VC file-system with file-attributes... Why not actually make a VFS plug-in for Linux, even if it forces everyone to adopt a Linux Server for the repository, and do the merge, etc, tools at the user-level? It still seems more elegant that way, even if it forces use of of Linux -- didn't VMS have a rudimentary Rev Control in its file-system?
      When I first saw Arch, I immediately shied away because it was all written in shell, however when the first version of 'tla' appeared (i.e the C-code version) I was quite impressed at the fact he was actually allowing himself to test his basic desing ideas in what amounts to a Rapid Dev Environment, even if Shell-script is a painful beast to try and do something like this in.

    2. Re:Design and License by epine · · Score: 2, Insightful


      How is this model any different than the history of Linux kernel development? The packet filter portion of Linux comes to mind immediately.

      It's not always a bad thing to strive toward production ready code. It can be a good and necessary counterbalance to the "think forever" reflex that takes hold in projects that go too far in the other direction.

      Concerning the tone of the interview, I wouldn't be at all surprised that the best source-code revision system comes from a Theo-like development camp. Some projects can handle a "let's all get along and not say anything too combative" and some projects do much better at the other extreme.

      Personally, I'll download my firewall, my filesystem, and my source control system from the crabbiest ubertard I can find.

  6. d00d, ur source management sysemz BLOW by wankledot · · Score: 2, Insightful

    I don't know anything about Mr. Lord's product, but I do know he sounds like a 12 year old boy when he writes. People might respect you and your work more if you use the word "blows" a little less, and spend less time lashing out at other products with such ferocity.

    --
    My sig is blank, I typed this by hand.
  7. 'Ever hear of the "zero-block over NFS" problem?' by tcopeland · · Score: 2, Insightful

    Is this a CVS problem or a NFS problem?

    Either way, the solution is "don't run CVS over NFS". Use the client-server protocal - either ext or pserver.

  8. I don't like CVS, Subversion, or Arch by Anonymous Coward · · Score: 4, Insightful

    I'd love to have a Free, lightweight, distributed, reliable, easy to use revision control system.

    CVS is Free and lightweight. I run it on my handheld with no problems.

    Subversion is Free, reliable (so far), and very easy to use. In fact the stripped-down CVS-based CLI interface is just slightly different than CVS but much more productive.

    Arch is all of the above.. EXCEPT easy to use. Here's the "eye-opener" that Mr. Lord really needs to address:

    % svn --help | grep '^ ' | wc -l
    28

    % tla help | grep ' : ' | wc -l
    105

    I'm sorry but just watching that scroll by is enough to make me say "well, maybe I'll figure this out later". Which is what I do every time I look at Arch.

    What I would like is a RCS that has the ease of use of Subversion, but uses changesets like Arch, and uses a lightweight storage system like Arch. I totally agree with his complaints about Subversion.. it is a bloated toy (using Berkeley DB for versioned tree storage is just the most bizarre decision). But the interface is the best, hands-down...

    So.. where's the killer open source RCS?? Open source is supposed to be about good no-frills development tools!

    1. Re:I don't like CVS, Subversion, or Arch by Helmholtz+Coil · · Score: 2, Insightful

      Here's a couple to have a look at:

      PRCS
      Superversion

      Of the two I use PRCS all the time for production code. Superversion's still a very new project but I think it shows a lot of promise, and well worth a periodic look.

    2. Re:I don't like CVS, Subversion, or Arch by Anonymous Coward · · Score: 2, Informative
      What I would like is a RCS that has the ease of use of Subversion, but uses changesets like Arch, and uses a lightweight storage system like Arch.

      And of course is decentralised like arch.

      Darcs

      Darcs wiki

      Getting started with darcs in 5 steps

    3. Re:I don't like CVS, Subversion, or Arch by mrdlinux · · Score: 4, Informative

      You want Darcs. http://abridgegame.org/darcs/.

      Using it is as simple as:

      darcs init <dir>

      .. hack hack ..

      darcs add <file>
      darcs record

      .. interactive questions about changes ..

      Then you have the option of sending your changes to other repositories, since Darcs is distributed.
      You can copy/upload them directly, pull them from the other side, or even email them.

      --
      Those who do not know the past are doomed to reimplement it, poorly.
    4. Re:I don't like CVS, Subversion, or Arch by mrdlinux · · Score: 2, Interesting

      I use Subversion at work with a large (half-gig) source tree, and primarily on Windows (with TortoiseSVN). We use the new FSFS backend. Seems to do quite well, even on a networked filesystem.

      --
      Those who do not know the past are doomed to reimplement it, poorly.
    5. Re:I don't like CVS, Subversion, or Arch by iabervon · · Score: 3, Interesting

      The article says that Tom Lord claims that a comprehensible interface for arch should be ready by the end of the year. Arch really is the right design, and will be ideal once there's a sane interface.

    6. Re:I don't like CVS, Subversion, or Arch by Anonymous Coward · · Score: 2, Interesting

      "I think CVS is the best of a pretty poor bunch at the moment - it may not be flashy, but it works. Subversion looks nice, and is mostly a better cvs, but it seemed to be a touch flaky with large (>1Gb) trees when I last tried it (getting itself into a corrupt state). It also used to let you check in files with bad filenames and then protest when you tried to check out. And lots of little things are essentially undocumented so you're forced to rely on the mailing list too much. I'm not thrilled about aspects of the design either."

      CVS is, quite frankly, ass! On tagging it can _seem_ like it's tagging successfully (T 'filename') and even a handy exit code of 0. But then when you go to actually use your tag you may get some, all, or none of the revision of the files the tag was supposed to be applied. It's not atomic in anything it does. On subversion operations succeed or they don't. Not some sort of throw the dice and see what actually got checked in/tagged/branched/whatever and what didn't.

      You get better log output, super fast execution, and much much better branching.

      The comment from, Lord "numb-nuts" of Arch, about svn being a toy is asinine. Bdb isn't the worst thing there is. And there's work to provide a choice. There's work progressing on using *sql as the backend storage. There's also work to give one the option of using a plain filesystem like CVS. If you're sick and like that kind of thing.

      In every way imaginable Subversion is superior to CVS. I have gone through the hell of having to work around CVS' failings. I have also experienced how much life is with subversion.

      Our repository is just 1.2GB right now. I've not experienced any "flaky" behavior whatsoever. It is, hands down, the better scm tool.

      If all code, binaries, and everyone involved in the creation and/or continued propagation of CVS were to be de-res'ed, the world would be a better place.

      For an opensource scm tool subversion is the way, the truth, and the light.

      If you want to talk about the best scm tool, bar none, that would Clear Case. Truely a best in class application. Although it wouldn't hurt them to step into the latter half of the '90s and get rid of motiff as their widget set for the gui frontends. But that's only if you care about the gui, right?

  9. GNU arch when an OSA by JohnGrahamCumming · · Score: 2, Interesting

    GNU arch was awarded an Open Source Award last quarter.

    As ever people OSI is accepting nominations for OSAs.

    John.

  10. Most polar? by Sean+Starkey · · Score: 3, Interesting

    I think the most polar source control system is Rational's ClearCase. You really love it or really hate. It's a very complex software package, but very powerful.

    Personally, I really like ClearCase. Too bad its so expensive, otherwise I'd use it for all my open source work.

    1. Re:Most polar? by wintermute42 · · Score: 4, Interesting

      Cost issues aside, I think that perception of ClearCase is effected by whether you have to set ClearCase up yourself or not.

      The first time I used ClearCase I had to set up the ClearCase environment. I did not like the ClearCase documentation much. Rather that just telling you what you need to know to get the system set up they provide their grand vision of the world. I could care less about their grand vision, I want to get the source control system working. After this experience I was not a big fan of ClearCase.

      I used ClearCase again in an environment where the release engineering group managed ClearCase, along with the releases. They would "freeze" the branches for release (and let you in when you had a bug fix). They would also create new development branches and they managed the main line branch. In this environment ClearCase was really nice. I liked it a lot and prefer it over CVS.

      In summary I'd say that ClearCase is a higher cost source control system. You not only have to pay for the software license for ClearCase but part of someone's time to manage it as well. For small projects and software development groups this does not make sense. But once a group reaches a certain size, the cost can be justified and ClearCase is nice.

      I am currently working on a project where there there is a core set of software that is used by three different groups, each of which will probably want their own changes. In this environment I think that a release engineering group and ClearCase would be justified (of course that does not mean that we're going to get a relase engineering group and ClearCase).

    2. Re:Most polar? by bheading · · Score: 3, Interesting

      Clearcase, when you couple it with the UCM product and Multisite, unlimited budget, and big machines to run it on along with a dedicated crew, is an outstanding product and it's impossible to beat. You basically can't get anything better. The trouble is that it's extremely, extremely expensive (in $$$ terms) and requires big-ass hardware, and it falls to bits when you've got developers who are on the road a lot (snapshot views just don't hack it, and to support them properly you have to eliminate all reliance on Clearcase's fancy build avoidance features). I worked with Clearcase in a 60-developer Multisite environment with two large SMP Sun boxes running the Clearcase servers, with multiple gigabytes of RAM between them, and even then the Clearcase environment would freeze up during the day from time to time simply because it was trying to handle everyone working on it at once.

      The killer feature of Clearcase is it's automatic dependency computation and build avoidance capabilities. These are possible because Clearcase provides an entire version-controlled filesystem called MVFS which you mount like a regular FS; it's completely transparent to the tools running on it. Thus, their custom build tool (clearmake) can watch what's going on during your build on the MVFS and automatically track build dependencies in a completely reliable manner. Of course, the flip side of this is that performance sucks; each time you stat() or otherwise access a file on that MVFS you're talking to the server which has to look up the version you're accessing (by reading your configuration spec - the powerful mechanism which defines which files you want to read out of the database) and pull it out of it's database.

      Clearcase works pretty well if you've large, and separated, teams of developers who basically don't move around, and you've a team of people to babysit the servers. In this post-dot.com era, the cost and expense of such a system is hard to justify. Smaller consulting business who have developers, who need to build, constantly on the road will find Clearcase more of a hinderance than a help.

    3. Re:Most polar? by jfw25 · · Score: 2, Informative
      I think the most polar source control system is Rational's ClearCase. You really love it or really hate.

      I guess I'm bipolar then, because I love and hate it.

      As others have pointed out, the things Clearcase does well, it does really really well, and it probably does more things well than any other revision control system (certainly more than any revision control system I've used). I frankly think MVFS (the multiversion file system) is the closest thing to magic that I've ever seen in a piece of software; and in general, the things you need to do routinely as a developer are done so transparently and naturally that it's just amazing.

      But the things it doesn't do well, it does horrendously. Performance is always a problem (and no matter how carefully you tune your network structure, someone will come along and make a small change and everything falls apart), minor server hiccups can lead to agonizing VOB rebuilds (we used to call this "a Clearcase holiday" at the first place I worked where Clearcase was in use), and the things you don't need to do routinely as a developer (but may have to do routinely as an administrator) can be arcane beyond belief.

      After my first work experience with Clearcase, I jokingly told the folks at the next place I went to that I'd only work for them on condition that they wouldn't use Clearcase. They used Source Safe.

      It took about four weeks of Source Safe for me to start begging them to consider switching to Clearcase.

      The astonishingly high price of Clearcase has side effects that I'm not sure the folks at Rational truly understand (or understood; now it's IBM's turn to misunderstand it). The company I work for now (not the one mentioned previously) also uses Clearcase, and Multisite too. We are stuck with a 4-year out of date version of Clearcase (despite serious bugs and deficiencies) because the cost of incremental upgrades was way too high, and now that it's pretty clear we're going to have to migrate to the latest version, we still can't because of the difficulty of skipping so many revisions. If Rational's business model weren't to hold their customers upside down by the ankles and shake them until money stopped falling out, they might have actually had a more constant revenue stream.

  11. Glad to see.... by GillBates0 · · Score: 5, Informative
    Support Services (coming soon...)
    * Per Incident
    * Subscription
    * Deployment Services
    * Custom Development

    that they're considering starting Support services soon. As a Configuration Management guy at a fairly large company, one of the reasons major corporations choose commercial version control software (Rational ClearCase, etc) over the open source counterparts (CVS, etc) is primarily due to lack of formal support.

    I'm all for open source and even dislike it when companies reject Linux because of "lack of support" (this is ofcourse changing with RedHat's efforts), but experience has taught me that not everybody in a large organization is a hacker and willing to figure out the intricacies incase something goes wrong. They'd rather pay for a service contract incase anything goes wrong.

    And ofcourse, there's also the accountability angle (which I dislike) to it, when you're using the version control software to develop critical/huge amount of bread-and-butter software - companies want to be able to have someone to point fingers at incase something messes up.

    --
    An Indian-American Hindu committed to non-violent thought/speech/action alarmed by the global explosion of radical Islam
  12. CVS Clunky? by Anonymous Coward · · Score: 3, Funny

    How can he say CVS is clunky junk?

    I use it on my 486 SCO Unix machine and think it's the cat's meow.

  13. All that and he doesn't explain... by omaha · · Score: 5, Insightful

    I use subversion and have been on the lists for a couple of years now. Tom Lord has been to those lists as well. In all those times, including this one, he has never explained how arch is better. For the lead developer to be unable to communicate the rasion d'etre for a project in a way that makes others curious is not a good thing.

    Primarily, he has only flamed svn. Even this interview he talked more about svn than arch. Nothing he said raised any interest in me to look at arch.

    Also, his criticism of svn's current backend was true 8 months ago. There is another backend that will be available soon. And with that, the sytem will be able to handle additonal backends in good form.

    SVK, which Lord mentioned, is a feather in svn's hat since it uses subversion as a base. If distributed mode is a real need I would suggest looking at BK or svk.

    1. Re:All that and he doesn't explain... by omaha · · Score: 5, Informative

      As to svn backends... I think it is prudent to point out a false statement made by Lord.

      from: http://web.mit.edu/ghudson/info/fsfs/

      "FSFS" is the name of a Subversion filesystem implementation, an
      alternative to the original Berkeley DB-based implementation. See
      http://subversion.tigris.org/ for information about Subversion. This
      is a propaganda document for FSFS, to help people determine if they
      should be interested in using it instead of the BDB filesystem.

      and from http://subversion.tigris.org/svn_1.1_releasenotes. html
      "Non-database repositories

      It's now possible to create repositories that don't use a BerkeleyDB database. Instead, these new repositories store data in the ordinary filesystem. Because Subversion developers often refer to the repository as "The Filesystem", we have adopted the rather confusing habit of referring to these new repositories as "fsfs" repositories... that is, a Filesystem implementation that uses the OS filesystem to store data."

    2. Re:All that and he doesn't explain... by tlord · · Score: 4, Interesting

      > As to svn backends... I think it is prudent to
      > point out a false statement made by Lord.
      > [Hey, FSFS exists.]

      I agree it is good to point out FSFS. The
      interview is, indeed, misleading in that
      respect.

      As far as I know, back when the interview was
      conducted, FSFS did not exist or at least was
      not on many radars.

      A separate question is whether or not FSFS
      really makes the server-side of svn all nice
      now or not --- but certainly that is not going
      to be worked out in /. comments.

      -t

    3. Re:All that and he doesn't explain... by omaha · · Score: 3, Insightful

      I agree that this won't be settled here, but I do maintain that now a second backend has been accepted in to the mainline it will be far simpler to intergate other backends now. And with that, I expect to see more backends become available. Primarily due to the fact that the developers are more acutely aware of predispositions that would affect the ability of svn to integrate with "other" backends.

      As to the merge capabilities, I agree there is room for improvement. However, I believe that developers/project managers are more comfortable with evolutionary change as opposed to revolutionary. In that light, I predict that svn has a bright future.

      svn already has a number of front ends HTTP, SVN:// and webdav. And now, mulitple backends. It is this decoupling that will allow svn to go where cvs could not.

      I in no way have any ill-will twoards T. Lord. I would only suggest that he focus on the positive aspects of arch instead of the current ego battle with other version control systems. This is one area where the best will be used. Seasoned Developers/Project managers care about this subject. If a solution is truly head and shoulders above the rest it will be recognized and used.

    4. Re:All that and he doesn't explain... by belroth · · Score: 4, Informative
      One major advantage in using fsfs over bdb with Subversion is that you can use a network share for your repository now, this was not a good idea before but now it works.(1.1 is still in beta though)
      FYI you can also use Apache or subversions own server to host a network repository.

      If you want a windows gui front end for SVN try TortoiseSVN, this integrates nicely with explorer and works pretty well.
      I'd like a similar ability with Konqueror, but that's a long way down my to do list.
      It'd also be nice to work out how to really handle the situation with working cross platform and case(in)sensitive file names...

      --
      I hereby inform you that I have NOT been required to provide any decryption keys.
    5. Re:All that and he doesn't explain... by aardvarkjoe · · Score: 2, Insightful
      Tom Lord has been to those lists as well. In all those times, including this one, he has never explained how arch is better.
      This is exactly what turned me off from trying arch when I was looking to replace my CVS stuff with something a little less wonky. Subversion is very clear about what it does, and why it does it. When trying to find out if arch might meet my needs better, all I found were a bunch of rants by Lord about how "Subversion won't work, because it's deeply flawed, and arch is better" Which, of course, is completely counter to the reality that subversion has been working great for years. Maybe arch really is better, but I'm not going to go through the pain of finding out if it's obvious that even the author can't really explain why.
      --

      How can we continue to believe in a just universe and freedom to eat crackers if we have no ale?
    6. Re:All that and he doesn't explain... by SpootFinallyRegister · · Score: 5, Insightful
      this interview contribures nothing. almost all of his comments about subversion seem to be of the "you suck!" variety; plenty of emotion, not much fact. on the points he did make:

      Subversion requires a fairly heavyweight server

      i run a subversion repository on a FreeBSD system with a Duron 600 and 128Mb of memory, and the upstream link is only 128kbps dsl. subversion runs as smooth as silk, locally and remotely. i do not consider this to be a heavyweight server.

      The implementation is too complicated, the use of BDB as the primary back end creates admin hassles... managing database log files and backups

      somewhat true. i dont like the fact that subversion is currently tightly bound to BDB and Apache, but this is purely behind the scenes -- subversion's implementation can (and i imagine will) be evolved to support many backends, and issues with BDB are just issues with BDB. i dont think its fair to expect subversion to be fully open and support all sorts of databases and file systems for its backend at 1.06. furthermore, evolution of the implementation can be done so that old repositories still work fine with a new version, the new version has the option to use a dfferent backend, and most importantly, there will be absolutely no difference for user whatsoever.

      having to run a recovery process or worse on the server whenever it fail

      recovering a corrupted database of filesystem is never fun. nobody looks forward to running fsck. however, Lord makes this sound like a common operation for whenever something fails -- clearly, he has never typed the words svn help cleanup. when user operations go bad, it doesnt corrupt the repository, and recovery isnt necessary. any problems created by an interrupted operation affect only the working copy, and can be fixed with a simple svn cleanup.

      the poor merging support

      Lord references the poor merging support a few times, but fails to actually detail a complaint. branching as a copy is just a clean intuitive manner to visualize a new branch off of the current line, and one that works with his precious named identifiers instead of version numbers as well. the merging is a little different than cvs, but is as good at worst. if Lord can go off on "Arch is great (you just have to learn all about it and configure your environment in just the right way)", i would think he would leave some leeway for subversion requiring a user to have at least a general birds eye view of its operation.

      overall, this interview is like a political campaign that only attacks. i do not see any arguments in the text of "arch is better in this area because...", i only see "XXX is bad for the other guys." i've always taken the same view of these campaigns: if he had substance to support his product, he would have given it to us.

      and in finale, he uses the final paragraph to make excuses for arch having most of the same shortcomings he lists for other revision control systems.

      in all honesty, i am not familiar with arch. if arch does things better than subversion, i would love to hear it; and i am not claiming here that subversion is better. i can't, since i dont know arch. Lord would have been wise to use this interview as a forum to tell us about arch, and tell us why its good, but he didnt, and he has unfortunately turn my view on arch from neutral to maybe a little negative by virtue of jerkitude.

      i take one overall feeling from this interview, due to its lack of content and vitriolic but often uninformed attacks. Tom Lord, who are you trying to fool?

    7. Re:All that and he doesn't explain... by Sri+Ramkrishna · · Score: 2, Informative

      You might consider reading this then:
      http://www.gnuarch.org/arch-overview.html
      and this:
      http://www.gnuarch.org/arch-tech.html

      That tells how arch works. It would have taken too long in that interview for him to explain everything. But here is what you need to know:

      Arch is a revision control system the only tools you need is:

      * tar
      * patch
      * diff
      * diff3

      Thats it. Anything those tools can do you can do. Remember this when years down the road, arch or whatever is gone and you need to recover some old archive. Use those tools above and you can get it all back. Compare that with the proprietary solutions.

      sri

  14. Change is good... by Chuck+Bucket · · Score: 2, Informative

    while my company is stuck in CVS, Subversion is not going to be too big a jump. As the build manager I'm heading up the switch, and love the similarities, and the advantages of svn. I've installed/played with ARCH, however I've never gotten very comfortable with it. While I don't think it would be very hard to learn, there's certainly a learning curve that others will have to go through.

    PCB@!

  15. zero by Anonymous Coward · · Score: 4, Informative
  16. Argument by Slashdot(r) ? by legLess · · Score: 5, Funny

    Tom Lord sounds like he got his argumentation skills by watching Beavis and Butthead, reading JeffK, and getting into flame wars with trolls on /.

    Q: What's wrong with Subversion?
    A: It sucks.
    Q: What's wrong with CVS?
    A: It sucks.
    Q: Can you be more specific about Subversion?
    A: Yes. Subversion is teh suck. I realize that's a little inflamatory, so let me say that the sky is blue, dogs are hairy, and Subversion is TEH SUCK, fagg0t!!11
    Q: Can you be more specific about CVS?
    A: Yes, allow me to be more specific. It sux0rs. Hard. CVS is teh sux0r.
    Q: What's good about Arch?
    A: It rules. Also, I have a large penis. Fagg0t.

    --
    This isn't as much "normalization" as it is "don't take so many drugs when you're designing tables."
    1. Re:Argument by Slashdot(r) ? by mikefe · · Score: 2, Informative

      OMG!

      This actually convinced me to read the linked article.

      I'm not even half way through and I'm already laughing!

      --
      There: Something at a specific location.
      Their: Owned by someone.
      Please make sure your english compiles.
    2. Re:Argument by Slashdot(r) ? by legLess · · Score: 3, Interesting
      This actually convinced me to read the linked article.
      No greater praise for a /. comment :) I feel beatified.
      --
      This isn't as much "normalization" as it is "don't take so many drugs when you're designing tables."
  17. I disagree... by CaptainPinko · · Score: 4, Interesting

    don't we get enough marketing droids that can't ever say what they mean? I agree he was upfront, blunt, and brutal but in the end he didn't seem crazy or wild or unreasonable. He even backed up some of his more inflammatory statements. I think he was a very good interviewee. He did seem to be a little too forgiving to his project own weaknesses but that's is not unexpected and relatively forgiveable.

    --
    Your CPU is not doing anything else, at least do something.
  18. Re:Where are the screenshots? by Alioth · · Score: 4, Insightful

    No. The 'commandline POS' is very necessary - it's what runs underneath. I have no experience of Arch, but I do use Subversion - and if you want to use the GUI (say, on Windows) you use something like TortoiseSVN which integrates with Windows Explorer. However, advanced users may want to script some of their Subversion commands, or possibly just find it faster to use the command line than a GUI. Personally, I find Subversion pretty easy to use on the command line so I don't bother with a GUI - it gets in the way. I'm using Mac OSX right now - the epitome of a nice GUI, and whilst I use OSX's superb GUI for many things when it comes to my version control tools, I forgo the pretty GUI and just open a Terminal.

    The main problemw ith a GUI is that you can't script them (or not trivially anyway). A development tool (which is largely what version control is) that cannot be scripted is useless. The GUI is not the be-all-and-end-all. This is what frustrates me so much about Windows on the server (and why it's not a very good server OS) - it's because many parts of Windows are totally unscriptable out of the box. Don't do this to our version control software too.

    The GUI should be separate from the 'business logic' of any tool in any case - therefore there's absolutely nothing wrong with a GUI that drives command line tools underneath, or perhaps provides another interface by linking to a library which provides the heavy lifting parts of the code.

  19. No people skills. by Ectospheno · · Score: 5, Interesting

    Tom Lord has tried to work more closely with other revision control packages before (including the subversion team) but he has been hampered by his complete and total lack of people skills. I don't think he tries to, but he ends up offending everyone he tries to have a "discussion" with. Its comical and sad at the same time.

    1. Re:No people skills. by LizardKing · · Score: 3, Funny

      He certainly comes across as someone suffering from Tourette Syndrome. I've been considering the possibility of being classified as a sufferer myself. That way I can "legitimately" shout obscenities at my boss in planning meetings.

    2. Re:No people skills. by tlord · · Score: 4, Insightful

      > You fail to realize that Tom Lord is a genius,
      > and as such has no need for people skills.

      I only wish....

    3. Re:No people skills. by Doctor+Fishboy · · Score: 2, Funny

      He's hampered more by the blind faith of other people in their own way of doing things, and their unwillingness to listen to anything new.

      Whatever you say, Tom. *grin*

      Dr Fish (who's ALWAYS right)

  20. It's impossible to take Tom Lord seriously by Anonymous Coward · · Score: 2, Funny

    Article summary: every decision made in the development of Subversion is an obvious mistake and a total failure - the result of naive programmers daring to disagree with the "Lord" of revision control.

    When given the chance to talk about versioning systems, he spends more time bad-mouthing the competition than
    he does promoting his own solution. Did one of the Subversion guys "steal" his girlfriend or something?

    1. Re:It's impossible to take Tom Lord seriously by mav[LAG] · · Score: 3, Funny

      Did one of the Subversion guys "steal" his girlfriend or something?

      No - he just checked her out :)

      --
      --- Hot Shot City is particularly good.
  21. darcs by The+Pim · · Score: 4, Interesting

    Ok, I admit I just want to get darcs mentioned here, but I really want to know what Tom (as well as Larry McVoy) thinks about darcs. In particular, whether the theory will stand up to real use and scale to large projects. I have a hunch that David Roundy has discovered much of what Larry McVoy said was a dozen PhD theses worth of research behind BitKeeper.

    --

    The evaluation of an action as 'practical' . . . depends on what it is that one wishes to practice.
    1. Re:darcs by Anonymous Coward · · Score: 5, Interesting

      Hi,

      I (Larry McVoy) have looked over Darcs, Monotone, Arch, Codeville, and I think some others that I can't remember and I can easily say that no, they haven't discovered much of what we have done.

      Let's take darcs as an example. It's a cool system if you are a math or physics person. You can write proofs about how it works, much like BitKeeper. We like that and applaud anyone who is thinking that hard (and if you are looking for a job please come talk to us, we are always hiring). However, darcs suffers from the math problem. It's all about math and not at all about being pragmatic. Here's a for instance. The BitKeeper tree holding the 2.6 kernel has about 55,000 changesets. A null update using BK is 4 seconds (which is insanely slow in our opinion). Try doing the same thing with darcs and you will wait and wait and wait... That's just the first example of how it doesn't scale. The openlogging tree for linux is somewhere north of 110,000 changesets. *All* other systems die with that sort of load. We're slow but we work and we know how to fix the slow part.

      This problem space is strange, it is part math and part pragmatism. You have to do both and darcs does one of them. And it does it in only one of the areas, there are many many more. Repository synchronization, rename handling, merging, user interface, installation tools, working well on Windows as well as Unix, etc., etc.

      Our payroll is higher than any open source SCM system has generated by a factor of 50. It's higher than the reiserfs payroll, it's higher than lots of well known little companies doing useful stuff. It's high because there are lots and lots of corner cases *in addition* to the hard math stuff which needs to be done.

      Since we're talking about Arch, here's another example: we recently got a commercial customer who tried out arch on windows and came back and told us BK was at least 10x faster. And we told him that we think BK is way too slow on Windows. He liked that. The point being is that it isn't just about architecture, or licensing, or features, it's about a lot of not-so-fun stuff and that's why a commercial answer will always be better than a free answer. It costs a lot of money to solve the non-fun problems. Open source solves the fun problems (extremely well, I might add) but unless the project is very visible (i.e., the kernel) it starts to fall down when you hit the non-fun problems. Think about it - if noone is paying you money or telling that you rock while you are doing the grunt work - how long are you going to do that? Not very long, just look at 90% of the "projects" on sourceforge, all talk, no code.

      It's worth repeating that last bit. SCM is an undervalued field. Every engineer thinks that they can reproduce what BK does with a few scripts wrapped around CVS or RCS. While they may think that it flies in the face of the over 100 man years we have in BK and we know we are nowhere near good enough. The bummer is that the perception is that this stuff is easy but the reality is that it is hard. Both technically hard and detail hard. It's way more work than people think. But precisely because people don't value it, that's why the only real answer is a commercial answer. Yeah, yeah, you all love to give me crap because BK isn't GPLed but *none* of you have put in 1/10th as much effort as I have or have made 1/10th as much of a difference in this space. Talk is cheap, show me a better answer and I'll be impressed. It won't happen because it costs way way way too much money to deliver a better answer. How's the arch installer on windows? Graphical? Is it careful about not screwing up the registry? Can you have two different versions installed at the same time? What about the transport layers? Works over http? Really? Through all the wacky proxies out there? You get the idea, right?

      That's why all this discussion of arch or darcs or whatever is just nonsense. You all think this stuff is easy so you are never going to cough up the $30M or so it will take to solve it right. Sad but true. I guess it's good for us, it means we have a market, but it would be nice if you knew a bit more about the topic. I love it every time it comes up, the world is definitely becoming more aware at least.

      --lm

    2. Re:darcs by The+Pim · · Score: 4, Interesting
      (Someone mod parent up--this is really Larry.)

      I agree that "darcs suffers from the math problem", at least in that the implementation has focused on getting the semantics right and not on performance. (And unfortunately, the semantics are still not all right.) David maintains a kernel tree in darcs as a reminder of all the ways it doesn't scale. However, he also thinks most of them are fixable "post 1.0", and given how smart and capable he's proven to be, I give that claim some respect. Alas, I haven't had time to learn the math well enough to really be sure.

      Regarding the economics, I don't think SCM is an undervalued field. Or at least, the free software community can find a way to value any field it needs to to make progress. (And for SCM, you're helping!) People said we didn't value desktops, or help, or installers, or web browsers, or couldn't do webdav or other protocols "at the top of the stack". "No fun" is what people have said about all of these. (And we're still not great at all these, but I think we're on a clear path to get there.)

      What does this mean for darcs? It already has good semantics, is easy to use, and has a solid theoretical foundation. I think that free software folks will increasingly value distributed SCM and it will get more development man-power (if not as much as bk). These are excellent growth factors, and I suspect darcs will be able to handle 90% of projects out there in a few years. Unless the foundation is found to be weak (which is why I asked about that). Unless David loses interest before someone else steps up. Unless, unless, unless, but I like its chances.

      Put it this way: I agree that open source does not solve things that are too hard or no fun. But the second is actually a non issue: when we need something, powerful economic and selective forces will make it fun for someone. So I really care about the first, and I'm trying to gauge whether distributed SCM is too hard for David and others attracted to darcs. I suspect that it's not too hard, at least to get to the 90% mark.

      Thanks for taking the time to reply. I do enjoy reading what you have to say.

      --

      The evaluation of an action as 'practical' . . . depends on what it is that one wishes to practice.
    3. Re:darcs by Anonymous Coward · · Score: 2, Interesting

      Larry,

      There are some of us who will NEVER trust *our* hard work in a proprietary system. Maybe it is 10x faster and gives blow jobs between commits but it is still *MY* work in *YOUR* product with *YOUR* license on it, subject to *YOUR* bottom line.

      I will never use a closed-source/proprietary development tool like that (VMware is probably the closest I'd get, since it is easy to switch to "real" hardware if the VMware folks turn evil). The feature set is almost irrelevant if it's got a restrictive license.

      Almost *all* problem spaces are a mix of theory and pragmatism, yet it just takes 1-2 smart people to come along and come up with the breakthrough. Hopefully you haven't hired both of them :-).

      CVS has been "good enough" and nobody thought much about a replacement because the only people who were annoyed with CVS were developers who needed to focus on their *projects*, not taking a sideline to develop a good RCS.

      But I'll be patient. It'll happen.

    4. Re:darcs by boots@work · · Score: 2, Informative

      Just as a point of information: last time I tried checking the kernel tree into Darcs, simple operations took a fraction of a minute to complete. Which is fairly slow, and probably much slower than Bitkeeper, but I think not ridiculously slow. Bearing in mind that just untarring a tree takes several seconds, it's not completely unreasonable. It's OK for a product that's pre-1.0, and a few years younger than BK.

      Bitkeeper (last I looked) requires the user to explicitly mark files as "edited" -- obviously this makes diffs quicker, but it's a bit annoying and error prone. To my mind it's an overoptimization.

  22. they *all* suck by myowntrueself · · Score: 2, Interesting

    if someone can tell me of such a tool which can handle filesystem ownerships and permissions (in the context of Linux, in my case), and version them, I would like to hear it.

    At the moment I am using subversion because it has versioned properties and I wrote a bunch of scripts to extract filesystem metadata and create svn properties from them and vice versa.

    We have at least one arch fanatic where I work and when I asked him about this, he seemed to think that using arch for what I want would be *fantastic* and arch would rule, only I'd have to use the cvs method of maintaining ownerships and permissions, ie a script which maintains them in a file which is in the repository. Which I tried and which sucks.

    --
    In the free world the media isn't government run; the government is media run.
  23. Arch is great--it's real weaknesses by demi · · Score: 2, Informative

    I've been using arch for a while now. It's true that some of the setup is "too difficult"--it discourages adoption, but really, the documentation is quite good and example-laden.

    I think the two real weaknesses of Arch are (and neither of these are showstoppers for me and well worth the Arch-y goodness):

    • Lack of keyword substitution. I believe Tom's explicit position is that keyword substitution is properly the job of some kind of build or release system outside of version control, and that's probably right; but I like embedded version numbers and so forth.
    • Hooks are client-side-only. Since arch doesn't count on a particular storage backend or access method, it means you can't write hooks that force, for example, certain tests, or does notifications, upon commit or other actions on the tree. I think this is a more serious weakness; but to fix it might mean giving up the advantages of a server-free implementation.
    --
    demi
    1. Re:Arch is great--it's real weaknesses by sir99 · · Score: 2, Informative
      Hooks are client-side-only. Since arch doesn't count on a particular storage backend or access method, it means you can't write hooks that force, for example, certain tests, or does notifications, upon commit or other actions on the tree. I think this is a more serious weakness; but to fix it might mean giving up the advantages of a server-free implementation.
      The way around this is with a patch-queue manager such as Arch-PQM. This lets you run hooks on the pqm-managed tree when you submit patches to it, effectively giving you server-side hooks.
      --
      The ocean parts and the meteors come down
      Laid out in amber, baby.
  24. arch is... by EsbenMoseHansen · · Score: 5, Informative

    The good things about arch is:

    1. Changeset orientation --- patches are project oriented, not file-oriented, which is better (IMHO)
    2. Easy to make a private branch of a repository which you do not have access to
    3. Supposedly good merge mechanism
    4. Revisions are stored as simple changesets (patches) with only tarring and bzip2'ing.
    5. It has a lot of advanced features.

    The first two are why I use arch. The bad things are

    1. In Tom Lord's words, tla (the arch implementation) is a box of sharp knives. In other words, the interface is dangerous, uncomfortable, extremely badly documented and very clunky. E.g. simple operations like switching branch requires several commands and until all commands are executed the local version is in an inconsistent and unusable state
    2. It's very slow. When working from a local repository, it feel roughly like cvs on a public mirror. A patch to partly fix this was rejected.
    3. It uses just about every character available to the UNIX file system, including comma, =, {,} and more, and generates insanely long name. Some work is supposedly going on to fix the long names, though.
    4. To use safely, you have to know some graph theory. (I do, but I don't believe everyone should)
    5. Some commands are only safe if you have perfect knowledge of other users actions (star-merge).

    Oh yeah, the development has just sun-flared just when it had begun starting up again. A huge flame war (where Tom's primary contribution seemed to be "Grow up", "You're childish" and worse) arch is now without a release manager, and understandable nobody wants to take that role.

    In short, arch has great promise, but needs some drastic changes.

    --
    Religion is regarded by the common people as true, by the wise as false, and by rulers as useful.
    1. Re:arch is... by Sunthalazar · · Score: 3, Informative

      Well the couple comments about 4,5 are partially because arch lets you do things that the other programs don't.

      The specific problems that are mentioned. If you have 2 branches, mine and yours. They are similar, but we've both been hacking on them.

      I merge you changes, and you merge mine, and then we both commit. This causes some conflicts later. If, on the other hand, I merge your changes, commit, and then you merge my changes and commit, everything works very well.

      The above poster was a little bit extra scary in this regard. 90% of the time star-merge just works, and it is a tool that nobody else comes close to supporting (perhaps darcs, maybe monotone, I'm talking SVN and CVS primarily)

      I use star-merge all the time. I'm very happy with it.

    2. Re:arch is... by bheading · · Score: 2, Informative

      That's a pretty objective evaluation of the situation. I don't know about arch's "merge mechanism" though ? I've not tried it, but to do that job properly you need pretty advanced technology. Best of all you want some kind of graphical tool which will allow you to point and click at what chunks of code you want. The best commercial systems have that out of the box, but I've not seen it on any of the free systems.

      I looked at arch - I'm sorry to say it but the user interface is simply obscure (to say the least), not vaguely friendly or intuitive, and complex for completely needless reasons. The filenames associated with it's archive directories are absurd and break all kinds of standard utilities. You've to type in or remember fairly complex commands, and several of them, to do operations which should be pretty straightforward.

      I've been evaluating Bitkeeper for use in an commercial project and can safely say that it simply beats the living crap out of any of the available alternatives and easily challenges several other commercial alternatives, right up to and including the stalwarts such as Clearcase. At the end of the day it's just a matter of how valuable your time is. Do you have time to mess around with primitive solutions like CVS, writing loads of silly scripts to do simple stuff, or mess around with half-baked unfinished stuff like Arch, or do you just want to get down to business ? I suspect those questions dominate the choices most people have when it comes to SCM.

    3. Re:arch is... by LqqkOut · · Score: 2
      I'm looking for a version control system for a group of engineers who currently use "save as" when it's time for a new version... their current system is very prone to error and the files are all sitting on the filesystem just waiting for a user to click-drag-click instead of dblclick a directory.

      Not everyone in need of version control is writing code.

      --

      -- In Soviet Russia, radio listens to YOU!

    4. Re:arch is... by EsbenMoseHansen · · Score: 2

      OK, where I work most of my fellow collegues do not have a CS degree. To be exact, out of twenty there would be a couple of engineers (not software), someone with a different slightly related degree (e.g, I'm a master of math, no CS) and maybe one CS master. That's it. The rest has various short and middle term programming education, which means that they can just about handle auto_ptr. But unlike using C++ templates, which can be handled by a few and used without too many problems by many, a versioning system has to be usuable for anybody and everybody. And some of these people have problems with CVS. And it is not because they are stupid or anything --- but their talents lies in other directions, which is nice when such is needed. Those people could never grasp graph theory, not should they have to.

      Oh, and in my experience, CEO are self-taught as often as not.

      --
      Religion is regarded by the common people as true, by the wise as false, and by rulers as useful.
  25. Trekkies only by Anonymous Coward · · Score: 2, Funny

    Computer, Arch!

    Damn.

  26. Arch's biggest bug by dozer · · Score: 4, Interesting

    A quote from an email conversation with an unnamed Arch user in January: "I think Arch's biggest bug is the one up the developer's collective asses."

    This article is a good example. Tom Lord just hand-waves his way past every question. Subversion sucks!!! CVS users are teh stupid!!! If he tones it down a bit, he definitely has a future in politics. But I don't think he's a very good software architect.

    OK, it's true that CVS and Subversion have problems. But, gak, so does Arch. Good God is it slow for big projects (something they've been promising to fix for years). And it's got some horrifying naming conventions: "tla--devo--1.3". And the files! "{arch}", "++default-version", ",,inode-sigs". Whatever Lord was smoking, it must have been good. The branching and merging operators are powerful but, thanks to all the punctuantion, they are also ugly. It's like the entire UI goes out of its way to be downright unfriendly.

    Every time someone mentions these deficiencies on the mailing list, they just get flamed for not truly understanding Arch. "Namespaces! Namespaces! Namespaces!" "Win32 is for lusrs!" Whatever. I just want a tool that helps me get the job done.

    Personally, I'm in the middle of transitioning to Subversion. It's better than CVS, and it is faster and nicer to use than Arch. Works for me.

  27. Your biggest strength is to know your weaknesses by patrikoftheschwa · · Score: 2, Interesting

    What struck me as interesting about his comments is he only admitted to one flaw in Arch and he sort of mumbled it out: "...performance...won't bother most users...yadda, yadda, yadda".

    I find it hard to believe that Arch would be so perfect. If he really knew the strength of his software he would also have no problem admitting to its weaknesses and Arch would be that much better for it.

    Instead he spent most of the article attacking Subversion. If Arch is really that good, why would he spend so much time complaining and critiquing something else?

  28. Re:Arch has great potential... by Anonymous Coward · · Score: 2, Interesting

    I refuse to use a software application where I have to invoke the author's initials to specify commands.

    Tom, change your name

    you narcissistic f'er

  29. agreed, Arch needs a better advocate by studboy · · Score: 2, Informative

    I really, really wanted to try 'arch' but failed. I was up and productive with Subversion in about 20 minutes. The very clear and comprehensive PDF book on Svn has been well-used.

    The last straw for me was Mr. Lord's attacks on Subversion, which seemed unhelpful to say the least; wheras the cogent response by Mr. Greg Hudson was a model of respectable behavior.

    After several months of near-constant use of Subversion -- I love it, it's a joy to work with. It has a number of quibbles, but then again, dont we all?

    kudos Subversion team!

    I hope the Arch tool comes along, we can never have too many *different* tools, but I cant imagine how much better it would have to be before even contemplating switching from Svn.

    1. Re:agreed, Arch needs a better advocate by Sunthalazar · · Score: 2, Interesting

      Arch really does need a 'simple' mode for new people. It certainly took me longer than 20 minutes to get going well, and then a lot longer before I really got good at it.

      The thing is, being really good at arch is more productive than being really good at svn.

      I think arch supports a much better model for opensource development than svn. Because it is a distributed model. So while *I* might have the offical release of a project, if someone else wants to download and hack on it, they get to keep their changes in a revision control system, and I can easily merge their changes back. And if they keep developing, I can keep updating without them having to worry about what patches I accept and what I reject.

      It also supports maintaining multiple development branches much better. (You have a --dev tree, and a --release tree, where each one is evolving, hopefully one faster than the other.) With CVS, you pretty much only have a branch to eventually merge it back to HEAD. My understanding is SVN is a little bit better about it, but they still don't natively support doing more than 1 merge between 2 trees and automatically detect what has been merged in the past.

    2. Re:agreed, Arch needs a better advocate by boots@work · · Score: 2, Interesting

      If you wanted to use Arch, but it's too complex, then you should try darcs. It has fully-distributed operation, but you can get up and running in much less time. Commands have a closer resemblence to what you're used to in Subversion or CVS: "darcs record", "darcs revert", "darcs diff", etc.

      The best thing about darcs is that every operation is local by default. Subversion does diffs locally; darcs does everything locally. You only need to wait on the network when you want to get something not on your machine, or when you want to share your work with others. Arch can be made to work this way, but it requires a bit of setup and a lot of understanding of advanced concepts: mirrored archives, revision libraries, etc. With darcs, fast is the default.

      The main downside is that it's still pre-1.0, and so a bit less stable and documented than Subversion, though still reasonably good.

  30. Distributed development under arch? by iabervon · · Score: 3, Interesting

    I'd be interested to hear if anyone has actually gotten happy with distributed development under arch. I tried a reasonably simple case a few weeks ago, and couldn't get it to feel right.

    What I was trying to do was to have a two-layer revision control system, where I have a private archive in addition to the project archive, and I check into the private one all the time, and transfer changesets to the project archive when I'm happy with it. That way, I can be halfway through refactoring a big chunk of code, have it completely broken, but have the work so far revision controlled so that, if I accidentally wipe out my build tree, I can recover it.

    The problem I ran into was that I couldn't get the two archives to agree exactly on the current status: whenever I transferred my changes up from the private archive, it added a log message to the project archive, and my private archive wasn't up to date, because it didn't have the message. When I updated my private archive from the project archive (either to pick up the message or to get other people's changes), I had to put in a log message, which the project archive then didn't have.

    It seems like arch really ought to support getting two archives in perfect sync, as well as disregarding a commit to a remote archive that only adds changesets already in the local archive (as well as disregarding the changesets themselves, which it does do).

    1. Re:Distributed development under arch? by Humble+Legend · · Score: 2, Interesting

      Well it is just a feeling - and I've had the same feeling. But you get used to it, and that "top layer" archive can be used as a _pivot_ branch, into which other developers can merge (or you can pull their changes into) and then from which you can pull/star merge back into your private archive.

      When you see it that way, what is happening makes good sense really.

      However, I believe "archive mirrors" does what you are trying to achieve. I haven't used them yet myself, since I need the pivot branch to work with my coworkers.

      good luck
      zenaan

      --
      * The Humble Legend * Debian Enterprise: http://debian-enterprise.org/ * Homepage: http://soulsound.net/ * PGP Key: h
    2. Re:Distributed development under arch? by iabervon · · Score: 3

      I'm not sure what you mean by a "pivot" branch, but I can see how it would work to have an arrangement of archives such that each person has an incoming archive and an outgoing archive, and a "committed" state is when outgoing has all of the private archive, and the private archive has all of the incoming archive. If you don't have any central point, it doesn't matter that you can't have synchronization.

      On the other hand, I think it would be difficult to manage a with a lot of participants that way, simply because you'd have to search for changes in everyone's outgoing archives in order to get up-to-date. If your model involves cooperating with others, rather than simply accepting or rejecting their work, and the goal is for the group to have mostly a common consensus with some individual proposals, you really benefit from having the (groupwise, although not necessarily globally) central point which is the result of all the outgoing archives and the source of (most of the contents of) all of the incoming archives; but then the process has no fully-commited state.

      (I find it amusing that Tom Lord's system doesn't actually support multiple people agreeing with each other, and each copy tries to get the last word)

    3. Re:Distributed development under arch? by iabervon · · Score: 2, Interesting

      If I have just committed, or just updated (and had no local changes), my working directory agrees exactly with the archive it is from. It should be possible to get the same agreement between one archive and another archive in the same circumstances.

      That is, if a remote archive contains all of the changesets from the local archive, and I update the local archive with the remote one, the local archive needs to notice this operation (so that it knows I have those changesets), but, from the point of the remote archive, I haven't done anything new, because I only added changesets it already has.

      I suspect that the underlying issue is that arch fails to drop empty changes. If you commit after you've just committed, you'll generate an empty changeset and a commit message for it. Really, a changeset should have to change something; otherwise, success should be reported with no revision generated. Similarly, if you are applying a changeset from a star-merge and you have all of the changesets it is composed of (you've gotten everything that was merged in, and there were no additional changes by the merger to resolve conflicts), then no revision should be generated. (You don't even need to note the fact that you've now applied that changeset, because applying it again wouldn't do anything)

      I've actually used arch myself for most of a year now, and found the way a single archive works to be a significant improvement over CVS, but I have yet to get multiple archives to interact nicely. It looks like it would work well for cases where each archive is autonomous and no archive automatically picks up changes from other archives (i.e., the fully distributed case), but not for cases where some archive is kept up-to-date with respect to another archive (any centralization at all). Of course, arch is still ahead of CVS (the other system I have experience with) in that CVS doesn't support any relationships between repositories.

  31. I want to thank the Subversion team by MemoryDragon · · Score: 5, Insightful

    Although this is an Arch thread, after these rantings by Tom Lord (geeze does he really need to bash other projects without any serious explanation every time he gives an interview) For the wonderful CVS replacement they made. I used SVN for half a year in my last job, and the thing never gave me any serious trouble. From the day it reached 1.0 there was at least a basic integration support there, and the mailing lists are well moderated. Thanks Subversion team for the excellent program you delivered, you dont deserve Tom Lords constant bashing. But back to Arch, everybody knows it is a good program, all it needs is better tool integration. The problem has been existing for years.

  32. Re:Where are the screenshots? by BenjyD · · Score: 2, Informative

    KDE has dcop. Type this at the command line in KDE:

    dcop kwin default setCurrentDesktop 4

    for example, and watch your desktop switch. Every app exports actions (checkmail, go to URL etc.)

  33. Conflicts by Unordained · · Score: 2, Interesting

    Do any of these systems have good support for automatic conflict-resolution? While we don't run into conflicts often, their annoyance is compounded by the obviousness of their resolution (that is, yes, it's easy for us to fix, but why should we have to?) We're still using CVS (oh, stop laughing already) ... does anything else have support for (and preferably already-implemented) rules to auto-resolve conflicts?

    1. Re:Conflicts by QuantumG · · Score: 2, Interesting

      all these projects use Patch to merge files. Patch throws conflicts when it gets confused. BitKeeper has some proprietory merge algorithms (the infamous 3-way merge) so it gets conflicts less often.

      --
      How we know is more important than what we know.
  34. Does he know ANYTHING about Subversion? by glwtta · · Score: 3, Insightful
    Incrementally better naming scheme for revisions and branches? I am not sure if he means the per-file vs. per-repository revision numbers, or their tagging and branching systems, but either way the two have nothing in common. It just doesn't get more "non-incremental" than going from CVS's file tagging to svn's copy-to-branch/tag mechanism.

    The BDB backend has it's problems (though none of them nearly as drastic as he seems to think), but has he really never heard of the FSFS backend?

    The rest of the criticism is so vague that it kinda makes it hard to reply to: "it takes too many steps backward in various areas", oh, "various areas" - of course! I've been noticing that.

    I'm in the process of moving to Subversion from CVS (which I agree is deeply broken, by todays standards), and I've yet to encounter a single thing that Subversion is worse at than CVS. And a hell of a lot of things that it does much, much better.

    Now if that interview presented the tiniest bit of information about what arch does differently (apart from, you know, not being "teh suck") I would be tempted to check it out.

    --
    sic transit gloria mundi
    1. Re:Does he know ANYTHING about Subversion? by JamieF · · Score: 2, Informative

      You're overlooking the all-important open source requirement: "I have to be the primary author". That's why there are so many aborted fetuses of open source software on SourceForge, Freshmeat, etc... starting from scratch seems sexy and it's all fun to write up project goals and mock up screen shots, but when it comes time to actually write the thing, and especially to write documentation and QA the thing, there's a lot of drudgery to be done.

      I'm using Subversion now, have been for about 6 months, and it's IN EVERY WAY better than CVS, EXCEPT for industry adoption.

      TL needs to spend some time on Arch marketing. What exactly is bad about Subversion? Give me an example scenario that shows me just how fucked I would be with svn and how Arch would ride in on a white horse and save the day. Then give me four or five more. Write a couple of whitepapers explaining how Arch is fundamentally much better than Subversion in its theoretical design and how that's going to save my project lots of time that we're wasting with Subversion. Otherwise I'm just going to assume that learning Arch is a waste of time because it's not any better, just different, and exists just because TL wanted to write his own VC system.

      BTW, we just did a big branch and merge on my project. Not a big deal. Maybe with 100+ developers, Arch would rock Subversion's world, but how am I supposed to know that? It's not my responsibility to research every product out there just so I can find out whether needs I don't have are better filled by a different product than the one I'm using. That's the product/project evangelist's job.

      No points are awarded for "it's totally different and strange, so you'll have to spend a lot of time learning it, and it's really slow, but it's way better than that other crap, because I say so."

    2. Re:Does he know ANYTHING about Subversion? by catenos · · Score: 3, Interesting
      Give me an example scenario that shows me just how fucked I would be with svn and how Arch would ride in on a white horse and save the day. Then give me four or five more. Write a couple of whitepapers explaining how Arch is fundamentally much better than Subversion in its theoretical design
      It's funny and sad to know he (mostly) already did this. Search the subversion-devel list back to 2002. ;)

      Huh? Did you read the same mails as I? Back then, Tom Lord's ramblings on the svn-dev mailing list had the same problem as this interview. And also those the grandparent complained about:

      What exactly is bad about Subversion? Give me an example scenario that shows me just how fucked I would be with svn and how Arch would ride in on a white horse and save the day.

      TL talked big about how Subversions design was broken but when asked to give concrete examples he always kept talking about theories.

      IMHO, it's not much unlike saying that Linux sucks because it isn't a micro-kernel architecture. And when being asked about details, being unable or unwilling to come up with an example how a micro-kernel design would fix an existing major flaw (without sacrificing the existing good points of the software).

      For example, I like QNX's design very much. But that doesn't imply that Linux is broken or sucks. Both have their strong and their week points dependend on the task at hand. (And for my daily desktop work I would fall into a crises if I had to use QNX instead of Mandrake due to some QNX usuability issues... oh wait, that reminds me of arch! ;-)
      --
      Keep an eye on which arguments are silently dropped in replies. Not always, but often times it's very telling.
  35. Arch is a no go by Sunspire · · Score: 4, Informative

    Arch just isn't a viable alternative for me or my team.

    1) It overestimates its own importance. It's just a version control system, yet it imposes restrictions on your coding practices. Specifically, you have to do out of tree builds or constant distcleans because arch assumes every file that gets created should be checked in, meaning there's a 1:1 mapping between the checkout directory and the repository by default. There's some work arounds, but it's a user-hostile stance to take and people moving from CVS/SVN will not accept this.

    2) The reason for the above is because "it's a feature of arch to encourage separation of source from builds". More like it is the easy way out of a lot of the tricky details with file renames and removals for the arch developers. Shit, why don't you just solve the tabs-or-spaces problem while you're at it, only allow checkings following the One True Way (tabs btw). I encourage Tom Lord to try separation of head from ass before he starts worrying about the cleanliness of my build tree.

    3) Tom Lord reminds me of a certain David Dawes (of Xfree86.org). It's just not that I personally don't like the guy, I could never commit my business or even hobby project to something lead by this man for the long term because I think the project has a high probability of self destructing.

    4) It's just unprofessional to blast the SVN developers. Newflash for you Tom: It doesn't matter if Arch is twice as good technically, SVN is good enough, familiar to CVS users and easy to use. They're all perfectly good reasons to go with SVN over arch, it's the reason MySQL is more popular than PostgreSQL. You don't see Postgres developers heckling MySQL, and Postgres is never, ever, going to overtake MySQL. Just be content with making the best versioning system, never mind what everyone else does.

    5) There's no Windows/OS X integration or even clients. That makes it a non-contender for any mixed environment, i.e. almost everywhere not counting projects being done in parent's basements.

    --
    It's like deja vu all over again.
    1. Re:Arch is a no go by rweir · · Score: 4, Informative

      Specifically, you have to do out of tree builds or constant distcleans because arch assumes every file that gets created should be checked in, meaning there's a 1:1 mapping between the checkout directory and the repository by default.

      Set "untagged-source precious" in the tagging-methods file. Yes, the default sucks for some people, but arch will work either way.

      More like it is the easy way out of a lot of the tricky details with file renames and removals for the arch developers.

      Erm, no, now you're just showing your cluelessness. Encouraging out-of-tree builds has nothing at all to do with renames, moves, or any other version control feature. If you build in tree, you will have NO problems at all with any of the things you mention here.

      There's no Windows/OS X integration or even clients.

      tla runs fine on OS X, as long as you have GNU diff, tar and patch. The windows port is seems to be working fine, albeit slowly. For all the whining about the lack of a Windows port, there's amazingly few actual contributors.

      For "integration", I assume you mean something like Tortoise{SVN,CVS}? Indeed, no one has written one of them yet.

  36. berkeley DB by edwinolson · · Score: 2, Interesting

    IMO, svn's use of berkeley DB as its backend, an opaque, non-human-readable, non-human-recoverable, non-machine-portable* database, is its biggest shortcoming...

    I still use svn, though. I'm just glad to be able to rename directories.

    I'd pee myself if someone forked svn and gave it a more friendly backend.

    -Ed

    *By this, I mean that you can't take the berkeley DB, copy it to another machine, and expect it to work... the internal byte order is machine specific.

  37. Hey! Look! by I+Like+Pudding · · Score: 2, Funny

    DJB wrote a revision control system!

  38. Re:Please, someone, just reimplement Perforce by rhaas · · Score: 4, Informative

    I like Perforce, too, but it does have some bad points. First the good stuff: the commands are extremely intuitive, the branching and merging model kicks CVS butt, it has atomic commits, and at least for small organizations, it's quite fast. The bad points are: - There is no equivalent of a ".cvsignore" file, so it is hard to figure out what you need to "p4 add". I really like the ability to run "cvs update" and see what I've changed and what files I need to add. You can of course write a shell script to do figure this out. However, it is handy to have it built into the application, and since it seems like a pretty simple feature to implement, I really don't know why the Perforce developers haven't bothered. - Perforce is designed to help you avoid having two developers working on the same file at the same time. The idea is that you "p4 edit" each file before starting to make changes and get an (advisory) message if someone else has already done this. This is not a bad idea, but sometimes you have a project and very often you have a branch where there is only one developer, or where this is otherwise unnecessary. Having to "p4 edit" all the right things before submitting is kind of annoying at times, even though there is a command to find all such files for you. In general, I prefer the CVS model, where you just edit things and check them in, though I realize there are times when the explicity edit model is preferable. - Quite a bit of the processing happens on the server side, I think, so you can need a big server if you have a lot of developers. I worked in one environment, with several hundred developers, where performance was an issue. And of course, - It's not F/OSS, some of the data files are stored in a proprietary binary format, and you have to pay for it. On the other hand, compared to Clearcase or Bitkeeper... it's cheap. Nonwithstanding the bad points, the branching and merging support was enough to make me talk my boss into springing for it. At that time, Subversion was not far enough along that I felt comfortable relying on it for production (and I don't think it had a Windows client either, not sure if it does now, which was a requirement for one of our developers).

  39. Re:Where are the screenshots? by waveclaw · · Score: 2, Insightful

    The main problemw ith a GUI is that you can't script them (or not trivially anyway).

    Okay, this is a pet peve of mine and (surprise) it does relate to arch, subversion, et al. The problems Tom Lord mentions are found everywhere in open source, and that is why X.org, arch and other 'duplicative works' or 'hateful forkings' exist.

    It is very trivial to script a properly built GUI. Now the deifintion of a 'properly built GUI' goes beyond being able to be scripted, but does include this feature.

    How? Why? From HCI and study of disability access we know that every action possible in a GUI should be performable with out a mouse. On Microsoft Certified Software this usually means everything has a contextually unique hotkey.

    Windows 3.1 included a nifty tool called Recorder. Recorder is a lot like UNIX typescript, i.e. type 'script' and it records all the stuff in your command line session until ^D, except it only recorded your inputs to the computer. ALL GUI. No Terminal. Using the run box and keyboard (hot-key) only commands you could record a fairly portable script to automate your task. Given that the script (macro) was in textual format (IIRC) basic text editing skill was all you needed to turn a simple script into whatever you wanted (including being driven by command line scripts.)

    The utter lack of standards compliance in Linux GUIs contrasts with the impresively standards-compliant command line applications (that are often definitive or reference implementations.) Let alone the lack of support for something like uniform contextual keyboard hot-keys.

    A GUI for arch or CVS or subversion could be made with scripting in mind. And not just via embedding LUA or another 'lighweight' language. However, proper GUI scripting would take a project on the order of the Ximian Desktop to make it work even as well as a cheesy under-utilized program from 1980's Microsoft.

    (Oh, and scripted GUI + decent version control GUI + automation tool = 100% developer envrionment matched automated test setup. Which can potentially be very cool if a bug is due to how a naughty newbie code monkey setup his little development cage. It's happened. And I've had to clean that monkey's cage one time too many.)

    -----
    Ugh. That's two pointless rants in one day. I need caffine.

    --

    "You cannot have a General Will unless you have shared experiences. You cannot be fair to people you don't know."
  40. Tom Lord was my roommate in '88 by js7a · · Score: 3, Interesting

    I have a huge amount of respect for him. He taught me that compromise is way overvalued.

  41. arch good for branching, bad for development by ndunn · · Score: 4, Informative

    I have been using arch for several months, moving completely over from CVS. Yeah, it fixes some of the stuff in cvs like moving directories and files. Its concept of branching isn't bad either. However, it completely fails simple things that cvs (and probably subversion) accomplishes with easy, like querying the differences between two branches without checking either out (the recommended solution is to check both out and perform diffs between them).

    There are other anomolies, like three different ways to update and/or merge branches, "update", "replay" and "star-merge". One version would be sufficient, with options which affect clobbering, etc.

    Other problems are the fact that it has to detect changes it frequently has to rebuild itself from branches back, which can tain several minutes as it goes through about 150 patch revisions. Of course, you can create a revision library to overcome this (I think).

    Don't get me wrong . . . I think that arch has the potential to be a great repository tool. Most of its problems could be overcome by simply automating sane defaults and allowing LESS choice. Currently, though, if I had to do merge my code over again, I would recommend against using it.

  42. CVS: another answer to the same old problem by master_p · · Score: 2, Insightful

    Why there are CVS systems? CVS systems exist in order to coordinate source code sharing between multiple people. In other words, CVSs are information management mechanisms.

    Why can't we see that CVS is just another version of the solution for the same problem? that problem is distributed information management. There are numerous places that this problem pops up: distributed filesystems, distributed databases, e-mails sharing between applications, source code sharing, etc.

    It should be the role of the operating system to provide distributed information management. It would render a whole class of applications unneccessary and it would make programming much easier.

    It is a great chance for open source software to provide this solution at open source level and gain a great technological, economical and social lead over propriatery software.

  43. VMS Versioning - Yess!!! by garyebickford · · Score: 2, Interesting

    This is one of two big things I miss from VMS/TOPS-10. File versioning was very valuable. The ";n" filename versioning worked surprisingly well considering it was such a simple implementation. (For the uninitiated, VMS automatically maintained the most recent version without the ";n".) I wish *nix had this.

    TOPS-10 (not sure about VMS) also had project as well as programmer permissions - kinda like groups but more powerful and useful. Once logged in as a user, you could change projects. Your login would look like, e.g., "user[alex:kerneldev]. Thus files and directories were owned by a project as well as a user, and the system maintained accounting data for both. It was easy to allocate and track work time and resource utilization to projects.

    The third big thing I'd really like to have is the transcripting facility in the Perq workstation's text editor. (Perq was an ancient workstation - I have three, will consider selling them as I need the $$.) The editor maintained a transcript of all changes made to the file and stored them on disk. In the event of a crash this transcript could be replayed while you watched. Besides being interesting to watch your own work in fast-time, it allowed recovery from the beginning up through the last block saved. VIM has a short transcript/replay, but it's cumbersome to use for anything more than a few keystrokes. It also has a basic recovery capability but doesn't work as well as this. I dunno about Emacs these days. I once restored a marathon 36-hour programming session (deadlines breed insanity!) using replay. The ideal would be a kind of 'tape' feature in the editor, which one could fast-forward and rewind by using a GUI, and grab that part where you wrote a nifty bit of code (or text), but then backtracked and went a different direction, and now you need that nifty bit.

    --
    It's easier to be a result of the past, but more fun to be a cause of the future! http://www.spacefinancegroup.com/
  44. Proof of correctness by Asmodeus · · Score: 2, Insightful

    In my view, the biggest barrier to adoption of new source code control systems is the confidence level. CVS suffers from lots of problems, but they are well understood due to the age of the system. Similarly I only trust Clearcase for my commerical development as it has been around so long (although BK is progressing well with gathering a bigger user base)

    For any new system to be a contender it needs to have either a large existing user base (chicken and egg problem) or a very comprehensive test suite with code and problem domain coverage figures. If I am going to trust my (assumed valuable) source code to an SCM system, then I need to know that it behaves correctly. DARCS scores lots of points for being based on a semi-formal proof of correctness, but that only proves the algorithms not the implementation.

    I've discussed this on Shlomi Fish's mailing list "Better SCM", but the real opportunity for all of the open source SCM projects is to collaborate on collating normal and pathalogical examples of SCM problems and building a common test suite.

    Asmo

  45. Re:Subversion doesn't support "obliterate" by melted · · Score: 2, Informative

    Is there a way to tell from the data files? I still have them. In any case, it's whatever version was current about 3 months ago. It was on Windows XP, maybe Linux version is more mature/stable. Basically what happened was it failed to check-in and it failed so hard I could NOT kill it using the task manager. It just sat there for a couple of hours with the processor pegged to 100%. After waiting for it to do whatever it was doing I've just rebooted the machine. Files got corrupted and neither subversion's own recovery commands nor berkeley db could repair it.

  46. FreeBSD hackers user Perforce by Phil+John · · Score: 2, Informative

    IIRC

    --
    I am NaN