develooper Front page | perl.bootstrap | Postings from July 2000

Re: Perforce vs CVS

Thread Previous | Thread Next
Russ Allbery
July 26, 2000 00:32
Re: Perforce vs CVS
Message ID:
Simon Cozens <> 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

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

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 (             <>

Thread Previous | Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About