[Top][All Lists]
[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