[cvsnt] Re: Mixing Modules (checkout a module/submodule into a sandbox of another module)

Gerhard Fiedler lists at connectionbrazil.com
Tue Jan 24 11:15:35 GMT 2006


Bo Berglund wrote:

> "Michael Flad" wrote:
> 
>>is it ok to checkout modules/submodules into a sandbox of any other module?
>>I've done some tests and it seems ot work but before I start using such
>>a setup in a production environment I'd better backup that by someone else'
>>knowledge.

It seems to work.

>>A virtual setup would look like that:
>>
>>game1module\
>>    \assets
>>    \docs
>>    \releases
>>    \sources
>>
>>internal\
>>    game1module\
>>        contracts\
>>        sales\
>>
>>sandbox
>>
>>game1module\
>>    \assets
>>    \contracts (internal\game1module\contracts)
>>    \releases
>>    ...

It possibly would be clearer and less prone to confusion if you set the
sandbox up like

game1module\
    internal\
        contracts\
        ...
    assets\
    releases\
    ...

> Seems like you are defining your module in different ways, this is
> probably not going to work. The game1module contains different things
> in your description...

IMO there's a bit a terminology confusion in cvs discussions when talking
about modules. Modules can be repository directories or definition entries
in module(2) files. It's not clear to me what you're talking about here...

The way I see it could work (and IIRC I had some constructs along these
lines that did work) is this (using the directory structure as proposed by
me above):

- Check out external/game1module into sandbox\game1module
- Check out internal/game1module into sandbox\game1module\internal
(overriding the default checkout location)

An update on sandbox\game1module should update from both repositories just
fine. In fact, any cvs functions in any directory should work just fine and
as expected. 


What will not work is to define something in a modules(2) file that does
the checkout from both repositories automatically (because the checkouts
come from two repositories). But this didn't seem to be what you wanted to
do anyway.

BTW and FWIW, you don't need two repositories. You could use a top level
module Internal that contains the internal stuff (and possibly a top level
module External, even though only one of the two is necessary) and set up
the ACLs once. Gives you (almost) the same separation as two repositories,
with the advantage that you could start using module(2) files once you
think it's worth it. 


> But if what you want to do is check out a hierachy of folders and then
> inside one of them you want to put a folder that actually does not
> physically exist in the repository at that level, then you will have
> some surprises as soon as you start doing updates and such things.
> Checkout usually works just fine but not the following procedures.

I had exactly this on occasion and never saw a problem. But I also never
used it exhaustively.

Gerhard



More information about the cvsnt mailing list