Re: Perforce vs CVS
[email protected] (Russ Allbery)
| Newsgroups | perl.bootstrap |
|---|---|
| Organization | The Eyrie |
| Message-ID | <[email protected]> |
Simon Cozens <[email protected]> writes: > Let's be practical and look at the technical reasons for going with it > or not. (And then let's copy them and implement a free version. :) The technical reasons appear to be "better merging" (mostly, so far as I can tell from their web page, the bit of remembering changes previously merged, which you can work around in CVS but which requires some annoying fiddling) and "changes committed as a unit" (which is mostly nice for generating change logs, and which you can fake in CVS but again with some annoyance). Performance is mostly a non-issue in my experience; CVS is "fast enough" if you're not dealing with a tree the size of Mozilla. Faster is kind of nice, but not really that important. CVS has very simple anonymous access, which is nice. CVS is also very well-understood by a lot of people, whereas Perl is the only place I've ever heard of Perforce. The folks who have worked with both CVS and Perforce have been pretty unanimous in saying that Perforce is significantly easier to use (a comment that I have to admit finding somewhat mysterious, as I can't imagine a distributed version control system being much easier to use than CVS; more ease of use would be lost in the noise, at least for me -- but maybe they're talking about the merge tools). Several of the points on the Perforce page are significantly out of date; CVS hasn't been built on top of a separate RCS implementation for some time now, for example. CVS has the significant advantage for me of using RCS files for its repository, which means that the repository is in a well-documented and fairly easy-to-edit *text* format rather than some sort of database as is used by some other VC products. I'm not sure how transparent the Perforce repository is. I would tend to be extremely skeptical of Perforce's bit about how they support more locking methods. This was an *intentional* design decision in CVS, not some design flaw that should be corrected or a feature that it's missing. -- Russ Allbery ([email protected]) <http://www.eyrie.org/~eagle/>