Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Programming Technology

Interview with Tom Lord of Arch Revision System 334

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."
This discussion has been archived. No new comments can be posted.

Interview with Tom Lord of Arch Revision System

Comments Filter:
  • Glad to see.... (Score:5, Informative)

    by GillBates0 ( 664202 ) on Friday September 24, 2004 @04:59PM (#10344226) Homepage Journal
    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.

  • Change is good... (Score:3, Informative)

    by Chuck Bucket ( 142633 ) on Friday September 24, 2004 @05:06PM (#10344300) Homepage Journal
    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@!
  • zero (Score:4, Informative)

    by Anonymous Coward on Friday September 24, 2004 @05:08PM (#10344316)
    arch tutorial [gnu.org]
  • by omaha ( 41554 ) on Friday September 24, 2004 @05:21PM (#10344412) Homepage
    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/ [mit.edu]

    "FSFS" is the name of a Subversion filesystem implementation, an
    alternative to the original Berkeley DB-based implementation. See
    http://subversion.tigris.org/ [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 [tigris.org]
    "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."
  • by mikefe ( 98074 ) <(mfedyk) (at) (mikefedyk.com)> on Friday September 24, 2004 @05:32PM (#10344498) Homepage
    OMG!

    This actually convinced me to read the linked article.

    I'm not even half way through and I'm already laughing!
  • by Anonymous Coward on Friday September 24, 2004 @05:33PM (#10344508)
    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 [abridgegame.org]

    Darcs wiki [scannedinavian.org]

    Getting started with darcs in 5 steps [scannedinavian.org]

  • by mrdlinux ( 132182 ) on Friday September 24, 2004 @05:46PM (#10344617)
    You want Darcs. http://abridgegame.org/darcs/ [abridgegame.org].

    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.
  • by demi ( 17616 ) on Friday September 24, 2004 @05:52PM (#10344673) Homepage Journal

    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.
  • arch is... (Score:5, Informative)

    by EsbenMoseHansen ( 731150 ) on Friday September 24, 2004 @05:53PM (#10344683) Homepage

    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.

  • by belroth ( 103586 ) on Friday September 24, 2004 @06:27PM (#10344911)
    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 [tigris.org], 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...

  • by studboy ( 64792 ) on Friday September 24, 2004 @06:28PM (#10344916) Homepage
    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.
  • by BenjyD ( 316700 ) on Friday September 24, 2004 @06:42PM (#10344999)
    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.)
  • Re:arch is... (Score:3, Informative)

    by Sunthalazar ( 69878 ) on Friday September 24, 2004 @06:55PM (#10345114)
    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.

  • by sir99 ( 517110 ) on Friday September 24, 2004 @07:01PM (#10345146) Journal
    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 [verbum.org]. This lets you run hooks on the pqm-managed tree when you submit patches to it, effectively giving you server-side hooks.
  • Re:I'm left out... (Score:5, Informative)

    by Humble Legend ( 254888 ) on Friday September 24, 2004 @07:08PM (#10345183) Homepage
    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
  • Arch is a no go (Score:5, Informative)

    by Sunspire ( 784352 ) on Friday September 24, 2004 @07:36PM (#10345340)
    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.
  • Comment removed (Score:2, Informative)

    by account_deleted ( 4530225 ) on Friday September 24, 2004 @07:44PM (#10345376)
    Comment removed based on user account deletion
  • by JamieF ( 16832 ) on Friday September 24, 2004 @07:47PM (#10345395) Homepage
    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."
  • by Sri Ramkrishna ( 1856 ) <.sriram.ramkrishna. .at. .gmail.com.> on Friday September 24, 2004 @08:35PM (#10345654)
    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
  • Re:Most polar? (Score:2, Informative)

    by jfw25 ( 618692 ) on Friday September 24, 2004 @09:31PM (#10345879)
    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.

  • by rhaas ( 804642 ) on Friday September 24, 2004 @09:57PM (#10345952) Homepage
    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).
  • by ndunn ( 171784 ) on Saturday September 25, 2004 @02:07AM (#10346832)
    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.

  • Re:Arch is a no go (Score:5, Informative)

    by rweir ( 96112 ) on Saturday September 25, 2004 @03:37AM (#10347040) Homepage Journal
    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.

  • Re:I'm left out... (Score:2, Informative)

    by fooishbar ( 743147 ) on Saturday September 25, 2004 @04:26AM (#10347202) Homepage
    Only some of the xapps are in TLA -- most are in CVS. There are some projects using tla (most notably debrix [freedesktop.org]), just as there are some projects using CVS and SVN. Officially, we're agnostic.
  • by melted ( 227442 ) on Saturday September 25, 2004 @02:23PM (#10349627) Homepage
    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.
  • Re:darcs (Score:3, Informative)

    by boots@work ( 17305 ) on Sunday September 26, 2004 @05:20AM (#10353852)
    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.
  • by Phil John ( 576633 ) <phil.webstarsltd@com> on Sunday September 26, 2004 @10:25PM (#10359063)
    IIRC

"No matter where you go, there you are..." -- Buckaroo Banzai

Working...