[Top][All Lists]

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

Re: question about importing

From: Kaz Kylheku
Subject: Re: question about importing
Date: Mon, 9 Sep 2002 12:21:29 -0700 (PDT)

On Mon, 9 Sep 2002, Stan Berka wrote:
> At 02:39 PM 9/9/2002 -0400, Eric Siegerman wrote:
> >"import" could arguably pay attention to the modules file -- but
> >I'm not going to be the one to argue for it :-) since (a) I don't
> >know what "pay attention to" would mean in practice, and (b) I
> >rarely use the modules file anyway.
> If you don't use modules file, how do you get the list of modules in the 
> repo w/o going to the repo manually and browsing what folders are there?

Ah, but this is only trivial use of the modules file, since you aren't
actually composing modules hierarchically, but only making their names

Using modules in any other way will eventually bring harm upon you, for
several reasons. The module structure is not versioned  as part of your
project (of course, the CVSROOT/modules file is subject to version
control, but that is not quite the same thing).  This is the big
problem; if you restructure the project by rearranging the modules
file, the change affects the old checkouts, which will conform to the
new shape, thereby destroying any notion of configuration management.
Other problems: CVS update does not notice changes to the modules file.
If you add a sub-module, nobody can pick it up via update; the other
users must check out.  The wrong pathnames are reported in some
situations. For example, try doing a cvs rdiff over a hierarchically
composed module. The pathnames in the resulting patch are useless,
and so you have a broken patch, one that can only be applied by someone
who manually checks out the constitutent modules side by side.

> "cvs checkout -c " returns just the modules file contents, or not?

That is nearly correct; the contents are subject to some reformatting,
which allows for easier parsing of the output. 

Meta-CVS: directory structure versioning; versioned symbolic links;
versioned execute permission; versioned property lists; easy branching
and merging and third party code tracking; all implemented over the
standard CVS command line client --

reply via email to

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