info-cvs
[Top][All Lists]
Advanced

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

Re: Module aliases


From: xyzzy
Subject: Re: Module aliases
Date: Thu, 29 Apr 2004 18:09:49 +0300
User-agent: KMail/1.6.1

Hi Jim,

Thanks a lot... this is getting much closer to what I need (and, of course, 
any problems here are because of my unclear exposition!)

See below:

On Thursday 29 April 2004 17:33, Jim.Hyslop wrote:
> address@hidden wrote:
> > On Thursday 29 April 2004 16:24, Jim.Hyslop wrote:
>
> [...]
>
> > > subproject-b project/b project/aa project/bb
> >
> > The problem with your fix is that aa and bb are 2 of many
> > files.... The
> > problem is mine because I was not clear on what I needed.
> >
> > I have many files in the root directory and want to get them
> > all...
>
> Ah, in that case, move directories a and c to a different location in the
> repository, create entries for each of them in the modules file, and add
> them as ampersand modules in the main project entry. Something like:
>
> project_a -d a project_relocated/a
> project_c -d c project_relocated/c
> subproject-b -d project project
> project -d project &subproject-b &project_a &project_b
>
> should do it. NOTE: Make sure anyone using these directories checks in any
> outstanding changes, releases their local copy, then does a fresh checkout
> when the move is complete.
>
> > I also DO want an alias because I want the name of the
> > checked out directory
> > to be "project", not "subproject-b".
>
> No, as I said, you don't want an *alias*, you want a *subset*. The two
> concepts are different. Setting the name of the checked-out directory is
> easily fixed using the -d option.

Ok, let me show this with a full example, seeing whether I understand 
completely what you said above:

Currently I have a project which lives under /cvs as follows:

cvs
        |_project
                |_a (directory with files and subdirectories)
                |_b (directory with files and subdirectories)
                |_c (directory with files and subdirectories)
                |_d (directory with files and subdirectories)
                |_e (directory with files and subdirectories)
                |_aa (file under "project")
                |_bb (file under "project")
                |_cc (file under "project")
                |_dd (file under "project")
                |_ee (file under "project")
                |_ff (file under "project")
                |_gg (file under "project")
                |_ (... files, etc...)


Currently, I will do:
cvs co project
and have the directory "project" with all under it, mirroring the structure 
above on the local machine.

What I want to do is to continue to be able to checkout the full project with 
the same structure, as well as do things like:
cvs co project_a_b

Which would give me
<local directory>
        |_a
        |_b

... and
cvs co project_c_d_e

Which would give me
<local directory>
        |_c (directory with files and subdirectories)
        |_d (directory with files and subdirectories)
        |_e (directory with files and subdirectories)
        |_aa (file under "project")
        |_bb (file under "project")
        |_cc (file under "project")
        |_dd (file under "project")
        |_ee (file under "project")
        |_ff (file under "project")
        |_gg (file under "project")
        |_ (... files, etc...)

... etc...

So, what you are saying is that I should move all directories to other 
subdirectories under /cvs so that now, my cvs tree looks like:
cvs
        |_project_files
                |_aa (file under "project")
                |_bb (file under "project")
                |_cc (file under "project")
                |_dd (file under "project")
                |_ee (file under "project")
                |_ff (file under "project")
                |_gg (file under "project")
                |_ (... files, etc...)
        |_project_a_b 
                |_a (directory with files and subdirectories)
                |_b (directory with files and subdirectories)
        |_project_c_d_e
                |_c (directory with files and subdirectories)
                |_d (directory with files and subdirectories)
                |_e (directory with files and subdirectories)

  ... (removing the "project" directory completely).

Then create entries in the modules file as follows:
project_a_b -d project project_a_b
project_c_d_e -d project project_c_d_e project_files
project &project_a_b &project_c_d_e

An issue that I see with the final module line is this (from 'info CVS' at 
Ampersand modules node):
"There is one quirk/bug: the messages that CVS prints omit the
`ampermod', and thus do not correctly display the location to which it
is checking out the files"

Have I got this right?  Does this mess up anything in CVS that counts on the 
"project" directory existing under /cvs?  What about the log entries, etc?? 

How do I hide these changes from the users so they don't see the structure of 
the /cvs directory?  That is, I don't want users to see something like 
"project_a_b" ever, only "project".

Thanks for your help.




reply via email to

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