From xemacs-m  Tue Dec 24 11:20:03 1996
Received: from CNRI.Reston.VA.US (CNRI.Reston.VA.US [132.151.1.1])
          by xemacs.cs.uiuc.edu (8.8.4/8.8.4) with SMTP
	  id LAA24011 for <xemacs-beta@xemacs.org>; Tue, 24 Dec 1996 11:20:02 -0600 (CST)
Received: from newcnri.cnri.reston.va.us by CNRI.Reston.VA.US id aa12266;
          24 Dec 96 12:18 EST
Received: from anthem.CNRI.Reston.Va.US by newcnri.CNRI.Reston.Va.US (SMI-8.6/SMI-SVR4)
	id MAA15919; Tue, 24 Dec 1996 12:18:41 -0500
Received: by anthem.CNRI.Reston.Va.US (SMI-8.6/SMI-SVR4)
	id MAA02847; Tue, 24 Dec 1996 12:18:40 -0500
Date: Tue, 24 Dec 1996 12:18:40 -0500
Message-Id: <199612241718.MAA02847@anthem.CNRI.Reston.Va.US>
From: "Barry A. Warsaw" <bwarsaw@anthem.cnri.reston.va.us>
To: Martin Buchholz <mrb@eng.sun.com>
Cc: Steven L Baur <steve@miranova.com>, xemacs-beta@xemacs.org
Subject: Re: XEmacs 20.0-b32 is released
References: <m2bubnfs4r.fsf@altair.xemacs.org>
	<199612220922.BAA12959@xemacs.eng.sun.com>
Reply-To: "Barry A. Warsaw" <bwarsaw@CNRI.Reston.VA.US>
X-Attribution: BAW
X-Oblique-Strategy: Discard an axiom
X-WWW-Homepage: http://www.python.org/~bwarsaw


    Steven> The sources have just been moved into CVS source control,
    Steven> please bear with me.  Suggestions and advice wrt CVS are
    Steven> gratefully accepted.

    Martin> All kinds of files changed because of RCS munging the file
    Martin> during checkin and checkout -
    Martin> eg. dynodump/i386/_relocate.c or FAQ-Mule.kr .

CVS is excellent for most group development projects.  I use RCS for
all my personal files (including things like cc-mode.el which only I
hack on).  We use CVS for all our group projects, including Python
development.  Of course we're heavy users of XEmacs here and VC mode
seems to work pretty well with both systems.  There are a few gotchas,
but nothing serious.  About the only thing we haven't really gotten to
work right is branching in CVS, so we don't do that! :-)

One important lesson I learned is that you never want to distribute
files with RCS tags left in (e.g. $Revision: xxx$).  I always make
sure to check my files out with -kv before I distribute them.
Actually for many files I don't even include the RCS tags in the
source since I can usually learn everything I need via VC mode.  You
should ask contributors to remove their tags from any files they send
you.  This also has the advantage that your revision numbers need not
be the same as theirs.

One caveat here is that you can't check things out with -kv and -l
(RCS will generate an error).  Unfortunately VC mode doesn't have the
right hooks so that I could set vc-checkout-switches to `-kv' when
doing a co -u, but nil when doing a co -l (and I haven't hacked this
into vc.el yet :-).  As a work around, I have a small command (given
below) I bind to `C-x v k' which does an unlocked, keyword value
checkout.

I believe there are some approaches to remote-CVS so that maintainers
need not share a common file system.  I know that we do something like
that for Python.  I'm unclear on the details, but I think Guido's got
some home-cooked Python scripts for managing all that.  I could find
out more if anybody's interested.

-Barry

-------------------- snip snip --------------------
(defun baw:vc-kv-checkout ()
  "Checkout with -kv -u and revert the file."
  (interactive)
  (let ((vc-checkout-switches '("-kv" "-u"))
	(file (buffer-file-name)))
    (vc-checkout file)
    (revert-buffer nil t)))
(define-key vc-prefix-map "k" 'baw:vc-kv-checkout)

