info-cvs
[Top][All Lists]
Advanced

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

RE: Ampersand module question


From: Chris Cameron
Subject: RE: Ampersand module question
Date: Wed, 29 Nov 2000 11:30:59 +1300

On Wednesday, November 29, 2000 10:22 AM, Laine Stump 
[SMTP:address@hidden wrote:
> Laird Nelson <address@hidden> writes:
>
> > I'm curious about ampersand modules.
> >
> > Once a regular module (containing another module via the "&" construct)
> > is checked out, does that module actually *know* that it contains the
> > contained module?
> >
> > If my modules file says something like this:
> >
> >   frobnicator  frobnicator &caturgiator
> >
> > ...and I do this:
> >
> >   cvs checkout -P frobnicator
> >
> > ...then I get this (as expected):
> >
> >   frobnicator/somedir
> >   frobnicator/caturgiator/someotherdir
> >
> > ...but now if I do this:
> >
> >   cd frobnicator; rm -rf caturgiator; cd ..
> >
> > ...and then do this:
> >
> >   cvs -q update -d -P -A
> >
> > ...then caturgiator does not reappear, suggesting that frobnicator's 
CVS
> > directory does not record what the modules file engineered to happen.
>
> Correct. there isn't enough info about submodules in the upperlevel
> CVS directory to bring it back, and cvs update ignores the modules file.
>
> > The only way to set this back up would be to re-checkout the project or
> > checkout the caturgiator module directly at this level.
>
> I believe if you do cvs checkout from above the toplevel of an
> existing work directory, and it will update what's already there, and
> add anything new that it finds in the modules file. It won't *remove*
> anything that was taken out of the modules file, though.
>
> > Is that by design?
>
> It seems more likely it was just an accident of implementation. The
> entire modules file concept doesn't seem very well thought out to me;
> more like an afterthought tacked on one rainy afternoon...
>
This seems to be (on my quick look) an artifact of the files in the CVS 
directory.  Entries contains the directories (and files) which have been 
checked out. Entries will have a D line for caturgiator. However CVS does 
an update by recursing into each directory in the current directory and 
doing an update there.  In this case caturgiator doesn't have a directory 
so it can't be recursed into.  CVS then goes into the repository in the 
location specified in Repository and tries to recreate files and 
directories that are in Entries, but not visible in the current directory. 
 In this case caturgiator is not in the Repository location, so can't be 
updated.  I guess the short answer is not to delete caturgiator once you've 
checked it out.

It seems to me that the intention of the modules file was to allow you to 
perform several checkouts at one time, using an 'alias' instead of having 
to remember all the repository locations.

***************************************************************
Chris Cameron                    Open Telecommunications NZ Ltd
Product Manager                           IN Product Management
address@hidden                           P.O.Box 10-388
      +64 4 495 8403 (DDI)                          The Terrace
fax:  +64 4 495 8419                                 Wellington
cell: +64 21 650 680                                New Zealand
Life, don't talk to me about life ....(Marvin - HHGTTG)





reply via email to

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