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."
I'm left out... (Score:5, Funny)
They forget those of us who have never heard of it before.
Re:I'm left out... (Score:5, Interesting)
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 [freedesktop.org]. 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.
Re:I'm left out... (Score:2)
That's interesting, because I remember them saying at OLS that they were considering it, but wanted to audit the code and the design a bit first. Based on your comment, I assume they've actually done the audit and decided they were happy with it--does anyone have a pointer to the results? I'm sure I'd be not alone in being interested.
--Bruce Fields
Re:I'm left out... (Score:5, Informative)
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
Re:I'm left out... (Score:5, Insightful)
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
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.
Re:I'm left out... (Score:5, Funny)
I rest my case. Version control makes asshats out of people.
Re:I'm left out... (Score:3, Funny)
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 [redmeat.com] shirt you're wearing!"
Larry: "Yeah? Well, in that case I revoke your BitKeeper licence! How d'ya like them apples? [playgroundlaw.com]
Re:I'm left out... (Score:5, Funny)
You must be new here.
Re:I'm left out... (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....
Re:I'm left out... (Score:5, Insightful)
Shouldn't headline read (Score:5, Funny)
Re:Shouldn't headline read (Score:5, Funny)
Re:Shouldn't headline read (Score:2)
Sci-fi/Fantasy collision imminent: does that make him a Go'ald System Lord or a Tollkien High Elf?
How to download the source: (Score:5, Funny)
# export CVSROOT=:pserver:anoncvs@cvs.gnuarch.org:/usr/cvs
# cvs login - the password is anoncvs.
# cvs checkout arch
Tact? (Score:5, Funny)
I'd love to hear his opinion on the vi/emacs debate... that'd get some heads rollin'!
I disagree... (Score:5, Interesting)
Re:Tact? (Score:3, Interesting)
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 t
Tom Lord was my roommate in '88 (Score:4, Interesting)
Design and License (Score:2, Interesting)
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.
Re:Design and License (Score:3, 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
VMS Versioning - Yess!!! (Score:3, Interesting)
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
d00d, ur source management sysemz BLOW (Score:2, Insightful)
'Ever hear of the "zero-block over NFS" problem?' (Score:3, Insightful)
Either way, the solution is "don't run CVS over NFS". Use the client-server protocal - either ext or pserver.
Re:'Ever hear of the "zero-block over NFS" problem (Score:2)
I don't like CVS, Subversion, or Arch (Score:4, Insightful)
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!
Re:I don't like CVS, Subversion, or Arch (Score:3, Insightful)
Here's a couple to have a look at:
PRCS [sf.net]Superversion [sf.net]
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.
Re:I don't like CVS, Subversion, or Arch (Score:2, Informative)
And of course is decentralised like arch.
Darcs [abridgegame.org]
Darcs wiki [scannedinavian.org]
Getting started with darcs in 5 steps [scannedinavian.org]
Re:I don't like CVS, Subversion, or Arch (Score:2)
Re:I don't like CVS, Subversion, or Arch (Score:3, Interesting)
Re:I don't like CVS, Subversion, or Arch (Score:2, Interesting)
Re:I don't like CVS, Subversion, or Arch (Score:2)
Re:I don't like CVS, Subversion, or Arch (Score:5, Informative)
Using it is as simple as:
darcs init <dir>
darcs add <file>
darcs record
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.
Re:I don't like CVS, Subversion, or Arch (Score:4, Interesting)
GNU arch when an OSA (Score:3, Interesting)
As ever people OSI is accepting [opensource.org] nominations for OSAs.
John.
Most polar? (Score:3, Interesting)
Personally, I really like ClearCase. Too bad its so expensive, otherwise I'd use it for all my open source work.
Re:Most polar? (Score:5, 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).
Re: (Score:3, Interesting)
Re:Most polar? (Score:2)
Now, that's not to say that I haven't appreciated Multisite, or some of the hairier things I could do merge/branch-wise with Clearcase, so it's a clever pig, but overbloated and expensive nevertheless.
Re:Most polar? (Score:2)
Re:Most polar? (Score:2)
Re:Most polar? (Score:2)
Oh, lets not forget that WIndows clients were unable to talk to Unix vobs, and vice versa. And lets not get into the bloated, bandwidth eating, utterly useless pig that is
Glad to see.... (Score:5, Informative)
* 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.
Re:Glad to see.... (Score:2)
> is primarily due to lack of formal support.
Here's a company that offers support contracts for CVS [ximbiot.com].
Re:Glad to see.... (Score:2)
I dearly hope this company will be called orthotics.
(Get it?)
Re:Glad to see.... (Score:2)
CVS Clunky? (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.
All that and he doesn't explain... (Score:5, Insightful)
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.
Re:All that and he doesn't explain... (Score:5, Informative)
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
"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."
Re:All that and he doesn't explain... (Score:4, Interesting)
> 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
-t
Re:All that and he doesn't explain... (Score:3, Insightful)
As to the merge capabilities, I agree there is room for improvement. However, I believe that developers/pro
Re:All that and he doesn't explain... (Score:5, Informative)
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...
Re:All that and he doesn't explain... (Score:3, Insightful)
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" Whic
Re:All that and he doesn't explain... (Score:3, Informative)
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 arch
Re:All that and he doesn't explain... (Score:5, Insightful)
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?
Change is good... (Score:3, Informative)
PCB@!
zero (Score:4, Informative)
Argument by Slashdot(r) ? (Score:5, Funny)
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.
Re:Argument by Slashdot(r) ? (Score:2, Informative)
This actually convinced me to read the linked article.
I'm not even half way through and I'm already laughing!
Re:Argument by Slashdot(r) ? (Score:4, Interesting)
agreed, Arch needs a better advocate (Score:3, Informative)
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
Re:agreed, Arch needs a better advocate (Score:3, Interesting)
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 m
No people skills. (Score:5, Interesting)
Re:No people skills. (Score:4, Funny)
He certainly comes across as someone suffering from Tourette Syndrome [wikipedia.org]. 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.
Re:No people skills. (Score:4, Insightful)
> and as such has no need for people skills.
I only wish....
Re:No people skills. (Score:3, 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)
It's impossible to take Tom Lord seriously (Score:2, Funny)
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?
Re:It's impossible to take Tom Lord seriously (Score:4, Funny)
No - he just checked her out
darcs (Score:5, Interesting)
Re:darcs (Score:5, Interesting)
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
Re:darcs (Score:5, Interesting)
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.
Re:darcs (Score:3, Informative)
Bitkeeper (last I looked) requires the user to explicitly mark files as "edited" -- obviously
FreeBSD hackers user Perforce (Score:3, Informative)
they *all* suck (Score:3, Interesting)
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.
Arch is great--it's real weaknesses (Score:3, 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):
arch is... (Score:5, Informative)
The good things about arch is:
The first two are why I use arch. The bad things are
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.
Re:arch is... (Score:3, Informative)
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
Arch's biggest bug (Score:5, Interesting)
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.
Your biggest strength is to know your weaknesses (Score:2, Interesting)
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 c
Arch has great potential... (Score:2)
These are all known issues under development (I wish I had time to help resolve them), and I'll try arch again in a while.
As is frequently pointed out, arch is also very different than CVS.
Re:Arch has great potential... (Score:2, Interesting)
Tom, change your name
you narcissistic f'er
Distributed development under arch? (Score:4, Interesting)
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).
Re:Distributed development under arch? (Score:4)
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)
Re:Distributed development under arch? (Score:3, Interesting)
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
I want to thank the Subversion team (Score:5, Insightful)
Does he know ANYTHING about Subversion? (Score:4, Insightful)
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 [mit.edu] 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.
Re:Does he know ANYTHING about Subversion? (Score:3, Informative)
I'm using Subversion now, have been for about 6 months, and it's
Re:Does he know ANYTHING about Subversion? (Score:4, Interesting)
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!
Arch is a no go (Score:5, Informative)
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.
Re:Arch is a no go (Score:5, Informative)
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.
arch good for branching, bad for development (Score:4, Informative)
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.
CVS: another answer to the same old problem (Score:3, Insightful)
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.
Proof of correctness (Score:3, 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
Re:Where are the screenshots? (Score:5, Insightful)
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.
Re:Where are the screenshots? (Score:2)
The main problemw ith a GUI is that you can't script them (or not trivially anyway).
MacOS has a scripting language called AppleScript which lets you trivially script pretty much every GUI app that runs on the system. In OS X, they've made it so that for an app to NOT be scriptable, the developer of that app would have to do it on purpose.
So... just because Windows and Linux don't have a good solution to this problem doesn't mean that the problem applies to EVERY GUI.
Re:Where are the screenshots? (Score:3, Informative)
dcop kwin default setCurrentDesktop 4
for example, and watch your desktop switch. Every app exports actions (checkmail, go to URL etc.)
Re:Where are the screenshots? (Score:3, Insightful)
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? F
Trekkies only (Score:2, Funny)
Damn.
Re:Please, someone, just reimplement Perforce (Score:4, Informative)
Re:Subversion doesn't support "obliterate" (Score:3, Informative)
Re:Conflicts (Score:3, Interesting)