I wrote:

I have a situation where I have a big directory tree of existing
code I'm importing a piece at a time.  Among the files to be imported
are a lot of extra files I don't want to just remove.  My basic
approach per directory has been:

-  Build the proper global and command level cvsignore patterns
   to ignore the extra cruft;

-  Back up the entire directory;

-  Run a trial import (-n) to see if it gets only what I want;

-  Run the real import and capture its output;

-  Remove the imported files;

-  Check out the imported versions.

The problem is that checkout will not recursively add to existing
subdirectories.  The top level directories show in the output with
a leading '?'.  If I run checkout in a new directory, things work
recursively as expected.  Is there a way to force CVS to recursively
check out over existing directories?  I can't remove the directories
since they may contain extra files that I'm not importing.

The answer to this was 'no', which is fine. But I don't think I understand the rules checkout uses regarding existing directories. It seems like:

-  If I import a new directory, all the way down recursively,
   ignoring what I need, then if I checkout that new directory
   in the existing tree, it replaces the old directory with only
   the files I imported.

-  If I import a subdirectory first, then check that out, a CVS
   directory is created at the top, thereby preventing me from
   recursively checking out anything new after import.  For example,
   if I import foo/a/b, then check it out, then import the rest
   of foo/a, which includes subdirectories foo/a/c, foo/a/d, etc.,
   then the previous checkout of foo/a/b has created a CVS presence
   that stops any of the subdirectories from being checked out
   recursively.

Does this sound correct?  If so, and we decide that our wrapper
will checkout into a new, safe directory, is a recursive copy
from there to the existing tree okay, or would I somehow mess
up or miss CVS pieces?  The other approach we've tested is
saving the non-imported files, checking out in the existing tree,
then replacing the non-imported files.

Also, when chipping away at an existing large tree as I am, are there
any bad side effects of checking out only pieces that share a common
root?  For example, if foo/a has 50 subdirectories I address one at
a time, checking out as foo/a/b, foo/a/c, foo/a/d, etc. in pieces,
does that have any bad effects on the top level, shared CVS entries
at foo and foo/a?  I see in the Entries.* files that only the last
checkout info. is recorded.

--
Steve Sapovits  [EMAIL PROTECTED]


_______________________________________________ Info-cvs mailing list [email protected] http://lists.gnu.org/mailman/listinfo/info-cvs

Reply via email to