[comp.software-eng] CVS summary

sue@WJ.COM (Sue Chung) (03/30/91)

Thank you very much for all the people who reply to my post on newsnet and 
valuable suggestions.  I really appreciate your taking time to send 
all the informations to us.  

After playing with CVS for two weeks, I have come to conclusions that CVS is 
the tool we should use to control our future releases.  

As some pepole requested for summary, please find following are all 
the clippings.

                                        Sue 

Date: Thu, 21 Mar 91 08:29:51 MST
From: berliner@Central.Sun.COM (Brian Berliner)
Message-Id: <9103211529.AA01830@rmtc.Central.Sun.COM>
Received: by nogger.Central.Sun.COM (4.1/SMI-4.1)
	id AA03012; Thu, 21 Mar 91 08:30:10 MST
To: sue@WJ.COM
Cc: berliner@Central.Sun.COM
Subject: Re: CVS revision control system
Newsgroups: comp.software-eng
References: <1991Mar20.202359.16009@WJ.COM>
Status: R

In comp.software-eng you write:
>We are using RCS currently to control our software releases.  We must
>support two different hardware platforms and three different releases
>(sub-sets of files from the master repository). We are evaluating CVS
>to see if it will meet our requirements and ease our pain a little
>bit.  However, in reading the CVS manual, it seems that using CVS to
>control production of binaries for multiple architectures is not well
>addressed.  We are starting our efforts to use CVS, if there is anyone
>out there who would like to throw some of their experience or advice
>our way we would greatly appreciate it.

Building multiple binary releases in CVS is no different than building a
single binary release in CVS.  You just need to check out multiple copies
of the sources.

The hard part comes when your sources have to share certain pieces, but not
all pieces, with the different releases.  The CVS modules database can help
put this together.  Try to make a single module name that will describe
each of your three releases.  If you have to, use symbolic links in your
source repository to grab pieces from the right places to build exactly the
hierarchy that you need (with the appropriate sharing) for each release.

The modules support has been redesigned for the next major release (ship
date unknown) and is MUCH more flexible in doing this stuff for you.  But,
that release is not ready for public consumption yet.

Also, consider building a few "release tools" -- shell scripts that sit
atop CVS and help make building and controlling binary release production.
CVS is the tool, and you need to tell it what to do by customizing a script
to meet your particular needs.  That's what we do here.

>Other than the manual pages provided with the sources, we have not found
>any books on RCS or CVS.

Nope... the publishers have not been breaking my doors down to write a book
for CVS.  And my management always wants me to produce other products, so
the CVS development and documentation is always lacking what a "funded" and
supported product can produce.  Such is life.  But, the price is right :-).

I must also point out that Sun's NSE product (Network Software Environment)
might suit your needs better than the current version of CVS.  It also
comes with a pile of ducuments.

Best of luck in your source code control pursuit.

	-Brian

Date: Thu, 21 Mar 91 01:54:52 -0800
From: Greg Onufer <greg@cheers.Bungi.COM>
Message-Id: <9103210954.AA01836@cheers.Bungi.COM>
To: sue@wj.com
Subject: Re: CVS revision control system
Newsgroups: comp.software-eng
References: <1991Mar20.202359.16009@WJ.COM>
Status: RO

The CVS paper documents how Prisma used CVS to control sources
for common programs (cat, ls, etc.) coming from multiple sources:
System V (AT&T), SunOS (Sun), and 4.3BSD (Berkeley).  The
solution is to make multiple vendor branches and tag them with
names (S7K, S9K, etc.) and even go as far as to create branches
with the serial numbers of machines if there are any that require
that level of customization.  The checkin script (a C-Shell 
program) doesn't inherently support this at this time (checking
in complete trees), but 1) WJ is making the repository as they
go at this point and 2) my checkin script allows the user to
specify the branch number explicitly with a command line switch.

CVS 2.0 will help out quite a bit in doing this (right now you
have to watch your command line arguments, but, then, using the
lower level SCCS or RCS commands you would anyways).  It's expected
"Real Soon Now" from Brian Berliner (who now works at Sun since
they bought Prisma or something like that).

Cheers!greg

Date: Thu, 21 Mar 91 10:27:24 MST
From: Michael T. Rampson <rampson@flash.uswest.com>
Message-Id: <9103211727.AA18721@flash.uswest.com>
To: sue@WJ.COM (Sue Chung)
Subject: Re: CVS revision control system
Status: R

We have been using RCS here for quite some time.  We have built up a suite of tools on top
of RCS (written in perl).  We don't have enough collision on file to warrant the use of
CVS (although there are some nice features that CVS has that would make life easier).
To handle building the software on multiple platforms, we use imake to generate our
makefiles for the given platform (we rewrote the templates to trim them down and make
them work with our directory structure).  Imake is available with X.  We use NFS to
mount the source directories (all source for a project is stored on one machine and is then
exported to whatever machine needs it).  We can then use the berkeley rcmds to do
remote builds and get reporting back to one location (clear as mud?).

				Hope this helps,
				mike
__
"There is no dog" -- A dislexic atheist....														                                                                                       rampson@uswat.uswest.com


From: smd@rehder.larc.nasa.gov (Steve Dahmen)
Date: Thu, 21 Mar 1991 14:59:35 EST
X-Mailer: Mail User's Shell (7.2.0 10/31/90)
To: sue@wj.com
Subject: RCS, etc.
Status: R

Sue,

In regards to your posting in comp.soft-eng...

We have written a fairly thorough set of tools on top of RCS called
LARCS (Langley Revision Control System) and we have it controlling
a number of projects here.  It is basically a system of shell scripts,
aliases, and Environmental variables
which call RCS low-level routines, keep a log of all activity with the
master source, and cross-reference changes with MR/bug numbers or ids.
Unlike CVS, it does not handle parallel development.   :-(

One thing that turned us off about CVS is that you have
to check out ALL the source into your local directory and compile the
whole bloody thing! (At least this is what i gathered).  LARCS uses
a central repository for object files, too, so that developers can
just link them in to the few object files they have compiled in their
own directory.  This conserves enormous amounts of disk, which was
important to us.  Seems a lot of people don't care much, tho.

Currently we do not simultaneously support different versions.  We only have
successive releases of the same product, evolving it continuously.
But with minor modifications, you could easily (?) make LARCS do what you
need.

As developers put back tested modules, the record of the ci is put in
a special log.  When it is time to do the integrated product build,
this log is run through a program that co's the latest revision of
each file changed.  After the build, I run a program that goes through
and, using the symbolic labeling facility of RCS, creates a label
corresponding to that release or version for every .c file present.
This allows me to fetch the source for any version with one command.

The system has a fairly thorough set of manpages, and is good with
error and interrupt handling. And since its written in shell, it
should run well on all versions of UNIX.


If you should want more info, I have the overview manpage for LARCS
that I am sending behind this letter.  Feel free to call or write with
any questions, etc.

Best of Luck!!!

Steve Dahmen

Status: R

I've never heard of CVS, but we use RCS to control software libraries that
are used to build five different products on seven different platforms (six
of which don't run UNIX).  If you're interested, I can outline how we go
about doing that.
-- 
Larry Campbell             The Boston Software Works, Inc., 120 Fulton Street
campbell@redsox.bsw.com    Boston, Massachusetts 02109 (USA)

Date: Mon, 25 Mar 91 11:06:23 PST
From: Alan Wright  <alan%cwi.uucp@ICS.UCI.EDU>
Message-Id: <9103251906.AA09364@>
To: sue@wj.COM
Subject: Re: CVS revision control system
In-Reply-To: your article <1991Mar20.202359.16009@WJ.COM>
News-Path: cwi!ucivax!jarthur!bridge2!mips!daver!watjo!sue
Status: RO

> We are using RCS currently to control our software releases.  We must
> support two different hardware platforms and three different releases
> (sub-sets of files from the master repository). We are evaluating CVS
> to see if it will meet our requirements and ease our pain a little
> bit.  However, in reading the CVS manual, it seems that using CVS to
> control production of binaries for multiple architectures is not well
> addressed.  We are starting our efforts to use CVS, if there is anyone
> out there who would like to throw some of their experience or advice
> our way we would greatly appreciate it.
> 
> Other than the manual pages provided with the sources, we have not found
> any books on RCS or CVS.
> 
> E-mail replies will be appreciated.
> Thanks to all who reply.

I can only suggest that you consider using a tool designed to solve the
problems you face. This does require a considerable investment, but
will probably pay off in the long term. Tools such as RCS, CVS, and
others may ease your pain a little in the short term, but can create
a maintenance problem, and actually introduce more problems and limitations
that they solve.