[cvsnt] Repository setup- Repositories and Modules? (Newbie Q)

Williams, Tim WilliamsTim at PRAIntl.com
Tue Sep 30 21:50:56 BST 2003


Hi Folks!

I have a basic question about setting up repositories. This has likely been
covered before but I can't find exactly what I am looking for in the
archives, so here goes.

I am wondering how to best setup our repositories. We are new to CVS.
Repository setup seems simple enough at first blush, but these are not the
usual programming projects (SAS code, in this case)....please bear with me
as I give some background:

We have many Clients, each with several Projects and a handful of offices
that will house CVS servers. To keep it simple, we'll say one client deals
with only one office and all their projects are on a single CVS server. 

Our working file structures (where the sandboxes live) are similar to the
following, with separate Development and Production folders within a
project:

\\FileServer\Client1\C1Proj1\Dev\Code
<\\FileServer\Client1\C1Proj1\Dev\Code> 
\\FileServer\Client1\C1Proj1\Prod\Code
<\\FileServer\Client1\C1Proj1\Prod\Code> 

\\FileServer\Client1\C1Proj2\Dev\Code
<\\FileServer\Client1\C1Proj2\Dev\Code> 
\\FileServer\Client1\C1Proj2\Prod\Code
<\\FileServer\Client1\C1Proj2\Prod\Code> 

\\FileServer\Client2\C2Proj1\Dev\Code
<\\FileServer\Client2\C2Proj1\Dev\Code> 
\\FileServer\Client2\C2Proj1\Prod\Code
<\\FileServer\Client2\C2Proj1\Prod\Code> 

..and so on.

My current thinking is to have a repository for each Client and define
modules that relate to each Project within the repository.  
 
The repository would look like this:
\\CVSRepServer\CVSRep\Client1\CVSROOT
<\\CVSRepServer\CVSRep\Client1\CVSROOT> 
\\CVSRepServer\CVSRep\Client1\C1Proj1\Code
<\\CVSRepServer\CVSRep\Client1\C1Proj1\Code> 
\\CVSRepServer\CVSRep\Client1\C1Proj12\Code
<\\CVSRepServer\CVSRep\Client1\C1Proj12\Code> 
\\CVSRepServer\CVSRep\Client2\C2Proj12\Code
<\\CVSRepServer\CVSRep\Client2\C2Proj12\Code> 

I would set up regular modules in the modules file that would look like:

C1Proj1 -d Code C1Proj1/Code
C1Proj2 -d Code C1Proj2/Code
C2Proj1 -d Code C2Proj1/Code

This would allow our programmers to refer to the project by project name,
even though they are not checking out a folder by that name (they will
retrieve the folder /Code down into the /Dev or /Prod folder in the
sandbox).
For example:
> cvs checkout C1Proj1  

Does this make sense?  Defining a repository for each individual Project
would result in a very large number of repositories! We have tens of
clients, and a single client may have several projects.  Are there
maintenance issues and limitations of this approach that I should be aware
of? We are starting with the basic CVS functionality then will likely use
additional tools like CVSMailer and ViewCVS at a later time. 

Thanks in advance!

Tim

Tim Williams                                   
SAS Systems Administrator         
PRA International   
Charlottesville, VA
USA       
direct      434.951.3504
main        434.951.3000
fax          434.951.3001
mobile     804.338.1063
WilliamsTim at praintl.com                                





More information about the cvsnt mailing list