>Submitter-Id: net
>Originator: Warwick Harvey
>Organization:
net
>Confidential: no
>Synopsis: cvs export to existing tree doesn't recurse
>Severity: non-critical
>Priority: low
>Category: cvs
>Class: sw-bug
>Release: cvs-1.10 (also 1.10.2)
>Environment:
Pentium 166 running RedHat Linux
Libraries:
libcrypt-2.0.7.so
libc-2.0.7.so
ld-2.0.7.so
Also a SPARC Solaris machine (sparc_sunos5)
System: Linux pinner.icparc.ic.ac.uk 2.0.36 #6 Thu Jan 7 11:54:56 GMT 1999 i586 unknown
Architecture: i586
>Description:
If you export a CVS module (with subdirectories) into a directory
somewhere, and then repeat the export, only the root of the tree is
updated; the subdirectories are ignored (other than being listed in
the output with a `?' next to them). It's as if `-l' has been
specified, and `-R' doesn't fix the problem.
The same thing happens if you try to export into an existing (empty)
directory tree. (This may be more of a problem if you want to
export multiple modules which share directories? I haven't
investigated that one though.)
Note that if a CVS subdirectory (with appropriate contents) exists
in a particular subdirectory, it may export files to that
subdirectory (depending on the contents of the Entries file), but
the CVS subdirectory is /deleted/ afterwards. (Actually, this seems
more serious: if a user accidentally exports to a working
repository, they hose all their CVS administration files --- but
probably they'd have more serious problems in this case anyway.)
>How-To-Repeat:
One sequence of commands used to exhibit the bug:
cvs export -D "2000-05-25 13:02" Eclipse
cvs export -D "2000-05-25 13:02" Eclipse
(That is, simply repeating an export of a module which has
subdirectories.)
>Fix:
Unknown. It /appears/ as though CVS is looking for, creating and
using CVS subdirectories during the export, presumably treating
it as an `update -d', and then deleting the CVS subdirectories
afterwards. Apparently this approach requires a little more care if
the export is to an existing directory tree.