Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 8 Jun 1998 11:35:00 -0400 (EDT)
From:      woods@zeus.leitch.com (Greg A. Woods)
To:        freebsd-stable@FreeBSD.ORG
Subject:   Re: cvsuping the cvs tree
Message-ID:  <199806081535.LAA16073@brain.zeus.leitch.com>
In-Reply-To: Robert Watson's message of "Sun, June 7, 1998 10:13:26 -0400" regarding "cvsuping the cvs tree" id <Pine.BSF.3.96.980607095952.8635A-100000@fledge.watson.org>
References:  <Pine.BSF.3.96.980607095952.8635A-100000@fledge.watson.org>

next in thread | previous in thread | raw e-mail | index | archive | help
[ On Sun, June 7, 1998 at 10:13:26 (-0400), Robert Watson wrote: ]
> Subject: cvsuping the cvs tree
>
> I'm about to begin a fairly substantial set of changes to a -stable kernel
> to introduce authentication/authorization token handling support. 
> However, I would like to continue tracking the -stable branch to catch bug
> fixes, new features, etc as they become available.  Ideally, I'd also like
> to use the merge support in CVS to do this.  What is the best way to do
> this on my local machine?  Is anon CVS access sufficient to do cvs updates
> and checkouts, etc, for the merging?  Can cvsup do this without zapping my
> source changes? :-)

The only really sure way to do this is to use the CVS vendor-branch
suppprt.  You'll need to create a local CVS repository.  Into that you
should import "releases" of FreeBSD.  From there you can check out a
working directory and introduce your changes to that local copy.  From
then on when you import new FreeBSD releases CVS will be able to assist
you in merging your changes with the new release code.

You cannot do this with the CVSup'ed repository alone, at least not if
you ever want to check in your own changes.  The only thing the CVSup'ed
repo is really good for is looking at log messages and diffs, and for
'cvs export'ing your own local copy.

There are a couple of tricks here, of course.

The first trick is in defining what "releases" are for your purposes.
You could simply revert to using only official CVS releases and giving
up on daily tracking of -stable.  Or you could go as far as to do a
daily 'cvs export' from the FreeBSD repository and 'cvs import' the
result daily to your local repository.  To date we've usually tried to
pick points on the -stable branch that either appear to be really
stable, or correspond closely to that point just after a true release
when the release's most apparent bugs are fixed.

The second trick is that "cvs import" will not "cvs remove" files that
have been removed in the source release.  You must do this yourself.
It's not hard but it requires finding that list of removed files and
running "cvs rm" and "cvs commit" with it (after confirming that there
are no conflicts resulting from your own local changes).  I have a
simple script under development that does the mechanics of this for
you.  Send me e-mail if you would like to try a copy.

Of course this whole process requires a fair bit of disk space.

If you want to make your own "releases" of your locally hacked code
(eg. to build a CD or to do installs from), then you'll need even more
disk space.

We currently have almost 2GB used in our /cvs (with both the CVSup'ed
repositories, and our local copy, plus a spare backup copy), and have
used up to 4GB doing builds and releases at any one time.

You may also want several machines to do the actual builds and run tests
on.

-- 
							Greg A. Woods

+1 416 443-1734      VE3TCP      <gwoods@acm.org>      <robohack!woods>
Planix, Inc. <woods@planix.com>; Secrets of the Weird <woods@weird.com>

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message



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