[1320] in SIPB_Linux_Development
More CVS news
daemon@ATHENA.MIT.EDU (Greg Hudson)
Sun Jun 2 19:33:19 1996
Date: Sun, 2 Jun 1996 19:32:09 -0400
From: Greg Hudson <ghudson@MIT.EDU>
To: sipb-athena@MIT.EDU
sipb-athena-commits will be active tomorrow (for the moment, commits
send mail to me). Send me mail if you want to be on the list.
We have several directories (emacs, perl, transcript) which we will
probably want to periodically update from outside. The "CVS model"
for doing this is to use "cvs import," which manges a vendor branch,
but because we started with a bunch of RCS files, that model won't
work ("cvs import" doesn't deal with RCS files that don't have a
revision 1.1, and retroactively creating a vendor branch seems to
cause some problems even for files that do have a revision 1.1). So,
we'll use branches manually.
If there isn't an existing branch, you can create one by checking out
the first revision of each file in the repository (this is not
necessarily easy; /mit/ghudson/scripts/co-first may help), deleting
any files that weren't part of the outside distribution, and doing
something like:
cvs tag -b LWALL
You'll probably also want to tag the sources at the point where you
made the branch (it is *not* easy to retrieve the first revision of a
branch, as far as I know):
cvs update -r LWALL
cvs tag PERL-5_001
Suppose a branch already exists for the outside source distribution,
and you want to update to a new version. You produce a working
directory on the branch ("cvs co -r LWALL src/perl" to make one, "cvs
update -r LWALL" to get an existing one on the branch; if you just
made the branch using the procedure above, your working directory is
on it), delete all of the working files (but none of the files in the
CVS directories), unpack the tar file of the new sources into the
working directory, and then doing a commit and tag:
cvs ci -m "Update to perl 5.002"
cvs tag PERL-5_002
(If we were using "cvs import", we wouldn't have to worry about
deleting all the working files and unpacking the tar file into a
working directory.)
Anyway, that gets perl 5.002 onto the LWALL branch; now you can merge
it into the mainline:
cvs update -A
cvs update -j PERL-5_001 -j PERL-5_002
Then you have to deal with conflicts and commit.
I'm in the process of taking care of this for perl 5.002. I'm
disappointed that the update process is so painful; CVS is somewhat
less compatible with existing RCS files than one might imagine.