info-cvs
[Top][All Lists]
Advanced

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

Re: recursive checkout in existing directory


From: Steve Sapovits
Subject: Re: recursive checkout in existing directory
Date: Sun, 23 Jan 2005 09:07:36 -0500
User-agent: Mozilla Thunderbird 1.0 (Windows/20041206)

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  address@hidden




reply via email to

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