From owner-freebsd-current Wed Jul 9 13:34:36 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.5/8.8.5) id NAA06564 for current-outgoing; Wed, 9 Jul 1997 13:34:36 -0700 (PDT) Received: from paris.CS.Berkeley.EDU (paris.CS.Berkeley.EDU [128.32.34.47]) by hub.freebsd.org (8.8.5/8.8.5) with ESMTP id NAA06431 for ; Wed, 9 Jul 1997 13:33:39 -0700 (PDT) Received: from paris.CS.Berkeley.EDU (localhost.Berkeley.EDU [127.0.0.1]) by paris.CS.Berkeley.EDU (8.8.3/8.8.2) with ESMTP id NAA11285 for ; Wed, 9 Jul 1997 13:34:06 -0700 (PDT) From: Josh MacDonald Message-Id: <199707092034.NAA11285@paris.CS.Berkeley.EDU> To: current@freebsd.org Subject: Re: CVS Branches hits again! MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <11278.868480441.1@paris.CS.Berkeley.EDU> Date: Wed, 09 Jul 1997 13:34:03 -0700 Sender: owner-current@freebsd.org X-Loop: FreeBSD.org Precedence: bulk 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