[cvsnt] Re: Use of modules(2) to check out several separate directories into different directories.
Oliver Giesen
ogware at gmx.net
Mon Jan 24 21:36:17 GMT 2005
Richard Kerry wrote:
> I'd like to set up a module definition so I can do a single check-out
> to get the three parts of the project I need.
>
> Each project has three parts.
> 1. Source files.
> 2. Include files.
> 3. Executable (output file(s)).
>
> Lets say the repository is in CvsRepo.
>
> I'd like to set up a single module to check out all three parts (call
> it MyProject_develop). The source files (in one directory, call it
> CvsRepo/Source/MyProject) are applicable just to one project. The
> Include files (in another directory, call it CvsRepo/Source/Include)
> are applicable to several related projects. The executable is one
> file (in another directory, call it CvsRepo/Binary, ie
> CvsRepo/Binary/MyProject.exe). It is produced by building the project
> in the appropriate manner (Visual Studio). It is needed as it will
> be issued to another part of the team who need to be able to use it
> without being able to rebuild it themselves.
>
> I'd like to set up the modules (and/or modules2) so I can check out
> all three parts in a single check-out. Ie. I want to say 'cvs
> checkout MyProject_develop' to 'Develop', and have it : 1. Get
> CvsRepo/Source/MyProject as Develop/MyProject, 2. Get
> CvsRepo/Source/Include as Develop/Include, 3. Get
> CvsRepo/Binary/MyProject.exe as Develop/Binary/MyProject.exe.
>
> Cheking out a different project, set up in a similar way, would get a
> different source directory, the same include directory, and put a
> different binary file into the same Binary directory.
As I found out today (see thread "Aliasing with modules2 ?") modules2
is no good for this task. It's a perfectly common thing with the
"old-style" modules file though.
For the simple grouping example it'd be something like this:
MyProjectBinary Binary MyProject.exe
MyProject_develop -a Source/MyProject Source/Include MyProjectBinary
If you need to map paths along the way, e.g. if you want the binary in
a "bin" folder below the Source folder instead of in the top level
Binary folder, you could do something like this:
MyProjectBinary -d Source/bin Binary MyProject.exe
MyProject_develop -a Source/MyProject Source/Include MyProjectBinary
There might be yet another way for performing the path mapping using
ampersand modules but I've never used them myself and TBH I haven't
missed them so far. I was able to accomplish evertyhing I needed so far
by simply combining alias and regular modules (with target override if
necessary).
Hope this helps.
--
Oliver
---- ------------------
JID: ogiesen at jabber.org
ICQ: 18777742 (http://wwp.icq.com/18777742)
More information about the cvsnt
mailing list