|
From: <gor...@bl...> - 2004-11-11 16:26:24
|
Hi Ian! First of all - note that I think we should *in any case* first just move the CVS from SF to squeakfoundation.org. :) Ian Piumarta <ian...@in...> wrote: > Hi Goran, > > [For those not familiar with the details, darcs = "changeset"-oriented > and CVS/Subversion = "tree"- or "snapshot"-oriented. Note that their > "changesets" are somewhat different to Smalltalk changesets.] Right. Though it seems to me that this doesn't necessarily mean that darcs is harder to use. It seems to be the opposite to me. > On 11 Nov 2004, at 05:13, gor...@bl... wrote: > > > darcs looks VERY good to me. Very good. So simple. So capable. Seems > > just damn superb. :) > > > For a lot of interesting notes: > > http://sourcefrog.net/weblog/software/vc/ > > It's also interesting how one document can elicit very different > reactions. What stuck with me most from that page, and from those that > it referenced, included: > > http://web.mit.edu/ghudson/thoughts/undiagnosing: > > * Changeset-oriented version control is more powerful, but it is > power which is largely unnecessary in all but the most chaotic of > development projects. First of all, I don't agree. :) Secondly, that document is defending Subversion (a centralized CVS-like system) against Tom Lord's "attack" (the author of Arch). So it doesn't even really discuss darcs in particular. Arch is complex - that everyone seems to agree on. But people are also saying that darcs is very, very simple. And so far I agree - even though I have only played with it a bit. But setting it up and getting going was trivial for me at least. > [Chaotic? We've had five people commit things to our CVS repository > during the last 12 months. Not once did any of them commit outside > their "assigned area of responsibility". We simply don't have any > conflicts, or -- for all intents and purposes -- merges, to deal with. > Everything we do is perfectly centralised.] But on the other hand I think there have been hacks and fixes floating around that have NOT been committed simply because people haven't bothered getting commit rights etc to SF CVS. Also note that AFAIK Ned is using his own branch, right? So... we all know CVS sucks at branches/merging. > * Changeset-oriented version control is harder to learn. In many > environments, a shallow learning curve is the most important > feature of a version control system. This is directly referencing Arch I think. Darcs doesn't at all seem that hard to learn to me, people testify to the contrary. > * Changeset-oriented version control is hard to get right. Perhaps > the best support for this statement can be found in a March 2003 > note from Larry McVoy to the linux-kernel list: > > http://www.ussg.iu.edu/hypermail/linux/kernel/0303.1/0130.html > > [6 years into changeset and the implementers are themselves saying they > haven't got them right yet? Not encouraging.] Again I don't think the author of darcs agrees. > * Changeset-oriented version control can be built on top of a > tree-oriented foundation, although it will have all the > disadvantages listed above. As Tom himself notes, tree-oriented > storage is a dual to changeset-oriented storage. svk > (http://svk.elixus.org/) serves as a working prototype of changeset- > oriented version control implemented on top of Subversion. > > > http://www.abridgegame.org/pipermail/darcs-users/2004-July/002351.html: > > With CVS, both branches and working dirs are cheap. Not so with > darcs: every branch and working dir costs at least two full trees. > > The reason why people (me included) love CVS is that CVS is safe. > There is no way you can ever lose data that has been committed without > doing manual surgery on /var/cvs/. This gives you a peace of mind > that is difficult to understand if you haven't been exposed to CVS. > > [I'll take "correctness" (and safety) over "utility" (and features and > _perceived_ simplicity) any day.] If you read that full thread it doesn't seem that simple. CVS is not "safe" (non atomic commits, stale locks yaddayadda) and darcs doesn't seem to be "unsafe", sure there seems to be constructed scenarios that could cause loss of information, but they are pretty complex. > Darcs, on the other hand, doesn't enforce any invariants except from > honouring patch dependencies. Patches flow randomly between repos, > and it takes a lot of discipline to ensure they flow the way you want > them to. > > > I'm not saying darcs isn't excellent at what it does, but rather that > what it does isn't at all what we need. > > Cheers, > Ian Well, I don't agree. It seems to me that darcs has a whole range of advantages: 1. Trivial to work offline and trivial to create your own branch etc without even contacting any centralized person to give you an account and so on. You just suck down a full copy of a repo and off you go all locally. 2. Trivial to publish your own repo, just http - no firewall problems, no special ports needed to be opened etc. 3. All the CVS classic problems gone like renaming files, moving files etc. 4. Much simpler to use for the casual user, at least that is my impression without actual usage to put behind it. :) ...and probably more things I can't come up with just now. :) But anyway, I am not one of the regular VM committers so you should of course decide among yourselves. I just like to learn darcs because it seems so damn nice. :) Btw, just noted that my full conversion of the Squeak SF CVS repo into a darcs repo just completed, time to play... But first things first - are everyone agreed on moving SF CVS to squeakfoundation.org CVS? regards, Göran |