Kate Ebneter wrote:
> Please, really, I'd really like to know why, if you want to do
> serialized synchronized development using locking, you chose CVS in the
> first place?

I actually have been staying out of this for a while but thought I'd
offer what I hope is a common viewpoint.

CVS at some point became accidentally quite good at being a platform
independent client-server version control system, whether you would
ideally like to develop concurrently or not.  Many people choose CVS on
the basis of the fact that (a) there are clients for every platform (see
jCVS, for example; Win/MacCVS, TkCVS, command line for at least three
platforms that I know of), (b) the model supports simple distributed
development (after all there is no one workspace that is "more official"
than any other; contrast this with MKS and its derivatives) and (c)
(obviously) the price and the flexibility are right.

For such people, the fact that CVS was designed to handle a particular
style of development, viz. concurrent development, is something that
simply may not be of interest.  These people will note that CVS doesn't
have locks, will sigh somewhat, weigh the pros and cons of a
client/server VC system that's RCS-compliant for free but that has a
particular development methodology in mind, and will come out in favor
of using it.  These people are typically working in a shop or on a
project that has mixed Unix and NT machines, with some Linux thrown in
for good measure, and maybe an HP machine or two.  Typically when people
select a VC system, they do so at the outset of a project, which means
they think that the project will stay small (they're usually wrong) and
hence something like ClearCase or any of the other heavies is way too
expensive.  They consequently look around for a VC system that will let
developers working on all the platforms mentioned (and possibly working
at home on unsupported machines) access the VC repository in a simple,
cheap manner.  They don't care up front whether the system really has
locks or not; it probably doesn't even occur to them.

To illustrate, this whole debate would probably go away if someone took,
say, RCS, bolted on or somehow made it accessible via a client/server
protocol, and offered it up for free on a zillion platforms.  The herd
of folks who don't want concurrency but who do like the
platform-independence and client-serverhood :-) of CVS today would
stampede to such a product, and the herd of folks who want concurrency
but don't really care about, say, the pserver side of things would stay
contentedly put.

Hope that helps answer your question.

Cheers,
Laird

Reply via email to