info-cvs
[Top][All Lists]
Advanced

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

RE: Question with modules


From: Mario Charest
Subject: RE: Question with modules
Date: Wed, 31 May 2006 16:31:36 -0400

> -----Original Message-----
> From: Bulgrien, Kevin [mailto:address@hidden
> Sent: Wednesday, May 31, 2006 12:13 PM
> To: Mario Charest; 'address@hidden'
> Subject: RE: Question with modules
> 
> > -----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.

Just after getting very close to give up, I found the solution:

stdc -d ./librairies standard/librairies
grade2 -d . grade &stdc 

Phew! ;-)

Thanks for everyone's suggestion

> 
> ---
> 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]