Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 09 Jul 1997 13:34:03 -0700
From:      Josh MacDonald <jmacd@CS.Berkeley.EDU>
To:        current@freebsd.org
Subject:   Re: CVS Branches hits again! 
Message-ID:  <199707092034.NAA11285@paris.CS.Berkeley.EDU>

next in thread | raw e-mail | index | archive | help
CVS seems to be causing problems.

Many of you may already know:  I've written a program, PRCS, which 
has been released for almost a year now.  I feel PRCS has now reached
levels of stability and dependability exceeding those of CVS, which 
for all it's design flaws may never be bug free.

I'm on the verge of releasing PRCS version 1.2, which irons out all
of the initial design problems and nasty implementation spots present
in versions 1.0 and 1.1, and am feeling very confident in the program.

I don't claim that PRCS is everything, however, as it still lacks a
few things that people use in CVS.  Some of these are things I wish
to add to PRCS for future versions, and some of these things I think
are poorly designed and don't belong in the core program itself and
should be left to extensions of one sort or another.  Mostly these are
policy decisions which are likely to be controversial to one person
or another and thus don't belong in the core utility.

Some things it yet lacks are:

1) a client server environment
2) recursive module semantics
3) developer notification services (mailing-list notification, for
   example) and other command hooks (I want programmable extensions
   for the purpose of implementing these and the stuff below).

Some things that it lacks and should be left to policy:
1) file locking such as CVS's watch and edit (are you, the freebsd 
   developers, using it?)
2) checkout histories such as CVS's history command (which I beleive
   you have disabled)

Some advantages:
1) Better branching model.
2) Atomic operations (this is this single most losing feature of CVS, 
   IMHO).
3) It's faster.  No days spent tagging repositories either.
4) It's easier to use and lacks the incestuous relation to RCS and all
   it's command semantics.  This makes improving PRCS far easier than
   CVS, because in order to improve CVS now you need to break it and
   lose compatibility.  I plan to replace RCS in the next major release,
   1.2 is last 1.x release I have planned.  This is done for the benefit
   of doing what CVSup does for a client-server implementation without 
   all the difficulty of supporting the RCS file format, which only gets 
   in the way of higher level programs like PRCS and CVS.
5) control over symbolic links and keyword replacement, including custom
   keywords.

So while I've admitted that PRCS isn't out-of-the box ready as a drop-in
replacement for CVS as you are using it, the purpose of this mail is to
see if there was any interest in changing to PRCS now or in the future
and if so, offering my services in closing the gap to make it happen.
Except for the client/server part, the missing stuff isn't hard to add, 
and it should be noted that it would be pretty easy to modify CVSup to 
work with PRCS, since a PRCS repository looks very much like a CVS 
repository.

Basically, in order to keep PRCS pure, I don't want to add a lot of the
stuff CVS has because it breaks my orthogonality and economy of design
principles.  I leave these things to seperate, coordinated extensions 
and/or applications so that they may be included, excluded, or modified
without interfering with the essential task, version control.  However, 
if there are a few things I can hard-code in now to help stir up a lot 
more users it's probably worth my while.

Please let me know what you think.  Comments are welcome, particularly
if there's something about PRCS that would keep you away from using it.

-josh



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199707092034.NAA11285>