[evla-sw-discuss] CVS Changes/Config Management

John Ford jford at NRAO.EDU
Mon Dec 16 13:46:32 EST 2002


Kevin Ryan writes:
 > I'm not sure this is what we want.  Quite a bit of time went into
 > planning the directory structure of /home/asg so that it would be
 > intuitive for placing/finding asg-generated files according to 
 > their purpose and also to accommodate the Java naming convention.
 > 
 > Way back when, I started to add CVS to our system, but when I got 
 > to the part that CVSROOT had to be at the root of everything I 
 > postponed it until I could learn more about how to figure out a 
 > way to make CVS be less obtrusive.  
 > 
 > In other words, directories called 'cvsroot' smack dab in the
 > middle of our hierarchy sort of defeat the purpose of the
 > hierarchy in the first place.
 > 
 > If someone from Charlottesville wanted to steal the HttpServer 
 > class that we wrote for the Mib as part of the AMCS subsystem of
 > the EVLA System he should intuitively look for it at:
 > 
 >    /home/asg/evla/amcs/mib/HttpServer.java
 > 
 > and not 
 > 
 >    /home/asg/cvsroot/CVSROOT/amcs/mib/HttpServer.java
 > (which also leaves out the 'evla')

It's not necessary to have the system have the cvsroot stuff embedded
in the working directories.  For example, the GBT systems use CVS.
Our repository is in /home/gbt2/repository.  In that directory is:

Yes, Master<39> ls
CVSROOT              GBTServo  doc       gb   gbt      oui     trace.txt
GBTObsTool.deleteme  Starlink  firmware  gbi  modules  themis  ygor
Yes, Master<40>

Each of which is a standalone directory of stuff.  In our working
directories, there is no reference to any of this tree.  For example,
anyone can pull out the whole "gbt" tree into an arbitrary directory.
FOr example, the directory that we build stuff in on a daily basis is:

/home/gbt1/gbt:
Which contains all the CVS managed subdirectories of "gbt":

Yes, Master<41> ls
CVS       PATCHES  devices  headers   makeDirs  status     user
Makefile  config   etc      instDirs  mk.log    unit_test  utilities
Yes, Master<42>


In your example above, you would simply create a project in
$CVSROOT/asg that contains the directory stucture "evla/amcs/mib".

I might suggest, though, that you keep in mind that if you are
successful in your project, that others will want to use your
software, (including yourselves, for another later system), and so you
might want to keep the name "evla" out of the directory tree, or
alternately, put it in the beginning.

 > > The directory structure I
 > > created was basically gleaned from the /home/asg/evla directory and
 > > looks like so:
 > >
 > > $CVSROOT
 > >    |
 > >    +--CVSROOT
 > >          |
 > >          +--amcs (antenna monitor and control)
 > >               |
 > >               +--bin
 > >               +--classes
 > >               +--doc
 > >               +--lib
 > >               +--obj
 > >               +--src
 > >          |

In our system we do not have the CVSROOT as a parent directory for all
our code.  I don't know why you'd want to do that.

FWIW.

John




More information about the evla-sw-discuss mailing list