info-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Question with modules


From: Bulgrien, Kevin
Subject: RE: Question with modules
Date: Wed, 31 May 2006 11:13:04 -0500

> -----Original Message-----
> From: Mario Charest [mailto:address@hidden 
> Sent: Wednesday, May 31, 2006 9:22 AM
> To: Bulgrien, Kevin
> Subject: RE: Question with modules
> 
> > -----Original Message-----
> > From: Bulgrien, Kevin [mailto:address@hidden
> > Sent: Wednesday, May 31, 2006 9:59 AM
> > To: Mario Charest; address@hidden
> > Subject: RE: Question with modules
> > 
> > -----Original Message-----
> > We have two different development branches of two distinct product.
> > 
> > standard/prg1
> > standard/prg...
> > standard/lib
> > 
> > grade/prg1
> > grade/prg...
> > 
> > Now I want standard to share the library directory with grade.  I
> > edited CVSROOT/modules files as such:
> > 
> > grade/lib standard/lib
> > ProductC -a grade grade/lib
> > 
> > When I do "cvs get ProductC" that works fine but if I try "cvs get -
> > dtmpname ProductC" the lib directory is not checkout and I see the
> > following error:
> > 
> > Cvs checkout: existing repository /cvs/home/grade does not match
> > /cvs/home/standard/lib Cvs checkout: ignoring module grade/lib -----
> > Original Message-----
> > 
> > I'd start here in the manual.
> > 
> > http://ximbiot.com/cvs/manual/cvs-1.11.21/cvs_18.html#SEC159
> > 
> > C.1 The modules file
> > 
> > But more specifically, this section is likely what you really are
> > looking for in this case:
> > 
> > http://ximbiot.com/cvs/manual/cvs-1.11.21/cvs_18.html#SEC162
> > 
> > C.1.3 Ampersand modules
> > 
> > ---
> > 
> > I think your solution may be similar to:
> > 
> > standard/prg1
> > standard/prg...
> > standard/lib
> > 
> > grade/prg1
> > grade/prg...
> > 
> > grade/lib &standard/lib
> > ProductC -a grade grade/lib
> 
> Thanks
> 
> I already tried that and it's not quite want I'm looking for. This
> creates
> 
> Product/standard/lib
> 
> But I want
> 
> Product/lib
> 
> I find very strange that my original solution only works when 
> -d is NOT
> used.  I don't understand the rational behind that behavior.

Ok, there's nothing like a little bit of experimentation with a test
repository in conjuction with the manual to learn how things work.  With a
certain amount of open-source-software-leg-work, a sample repository
structure can be created in a vanilla sandbox (CVS dirs pruned for brevity):

$ mkdir -p /path/to/cvs/repository
$ cvs -d /path/to/cvs/repository init
$ cd ~/cvs
$ cvs -d /path/to/cvs/repository co -d test
$ cd test
$ mkdir -p standard/prog1
$ mkdir -p standard/lib
$ mkdir -p grade/prog1
$ >standard/prog1/standard.c
$ >standard/lib/shared.lib
$ >grade/prog1/grade.c
$ tree
.
|-- CVSROOT
|   |-- checkoutlist
|   |-- commitinfo
|   |-- config
|   |-- cvswrappers
|   |-- editinfo
|   |-- loginfo
|   |-- modules
|   |-- notify
|   |-- rcsinfo
|   |-- taginfo
|   `-- verifymsg
|-- grade
|   `-- prog1
|       `-- grade.c
`-- standard
    |-- lib
    |   `-- shared.lib
    `-- prog1
        `-- standard.c

Commit the test scenario into the test repository, then, a sample module
setup may be created.  After a lot of experimentation, we arrive at:

$ cat CVSROOT/modules
lib -d lib standard/lib
grade-shared-libs -d . &lib
grade-prog1 -d grade/prog1 grade/prog1
grade-progs -d . &grade/prog1
grade-libs -d grade &grade-shared-libs
grade -d . &grade-progs &grade-libs
Product -d Product &grade

Test the sample module... and post it for with CVS dirs pruned for brevity.

$ cd ..
$ mkdir tmp
$ cd tmp
$ cvs -d /path/to/cvs/repository co Product
cvs checkout: Updating grade/prog1
U grade/prog1/grade.c
cvs checkout: Updating lib
U lib/shared.lib
$ tree
.
`-- Product
    `-- grade
        |-- lib
        |   |-- CVS
        |   `-- shared.lib
        `-- prog1
            `-- grade.c

Is that what you are looking for?  If not, I'd suggest playing with a sample
repository as I showed above.  You should be able to figure it out with what
I already did for you.

--- 
Kevin R. Bulgrien
Design and Development Engineer

General Dynamics C4 Systems
http://www.gdsatcom.com/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]