[There would seem to be some bug lurking here somewhere, in error reporting if nothing else. I think that using a directory as a file in the FILES list probably should be an error, but I haven't thought about it much or looked at the code. -kingdon] Date: Tue, 05 Jan 1999 15:21:05 -0700 From: Tom McConnell Organization: Intel Corp. To: bug-cvs@gnu.org Subject: cvs export failure with directories Howdy. I have found an inconsistency between 'cvs co' and 'cvs export' when there are directories in the "FILES" list of a module. If the module uses a directory in the "FILES" list after a file name then the entire CVS repository is checked out when using 'cvs export'. Using an '&' module with the directory works around the problem. This problem has been seen with cvs-1.9 and cvs-1.10 under Solaris 2.6 and HP-UX 10.20. Here is the modules file I am using: mod_dir1 -d dir1 rep_dir/dir1 mod_work_dir -d work_dir rep_dir dir1 mod_work -d rep_dir_work rep_dir rep_dir-file1 &mod_dir1 mod_fail -d rep_dir_fail rep_dir rep_dir-file1 dir1 If there is only a directory in the "FILES" list, 'cvs co' and 'cvs export' work the same: % cvs co mod_work_dir cvs checkout: Updating work_dir/dir1 U work_dir/dir1/dir1-file1 U work_dir/dir1/dir1-file2 % rm -rf work_dir % cvs export -D today mod_work_dir cvs export: Updating work_dir/dir1 U work_dir/dir1/dir1-file1 U work_dir/dir1/dir1-file2 Doing a 'cvs co' using 'mod_fail' and 'mod_work' result in the same files being checked out, with some differences in the CVS/Entries file: % cvs co mod_fail U rep_dir_fail/rep_dir-file1 cvs checkout: Updating rep_dir_fail/dir1 U rep_dir_fail/dir1/dir1-file1 U rep_dir_fail/dir1/dir1-file2 % cvs co mod_work U rep_dir_work/rep_dir-file1 cvs checkout: Updating dir1 U dir1/dir1-file1 U dir1/dir1-file2 % ls rep_dir_fail rep_dir_work % gdiff -r rep_dir_work rep_dir_fail diff -r rep_dir_work/CVS/Entries rep_dir_fail/CVS/Entries 0a1 > /dir1/0/Initial dir1// Now, if 'cvs export' is used instead, there is a much different result: % cvs export -D today mod_fail U rep_dir_fail/rep_dir-file1 cvs export: Updating rep_dir_fail/dir1 cvs export: Updating rep_dir_fail/dir1/CVSROOT U rep_dir_fail/dir1/CVSROOT/checkoutlist U rep_dir_fail/dir1/CVSROOT/commit_prep U rep_dir_fail/dir1/CVSROOT/commitinfo U rep_dir_fail/dir1/CVSROOT/cvsignore U rep_dir_fail/dir1/CVSROOT/cvswrappers U rep_dir_fail/dir1/CVSROOT/editinfo U rep_dir_fail/dir1/CVSROOT/log U rep_dir_fail/dir1/CVSROOT/log_accum U rep_dir_fail/dir1/CVSROOT/loginfo U rep_dir_fail/dir1/CVSROOT/mailer U rep_dir_fail/dir1/CVSROOT/modules U rep_dir_fail/dir1/CVSROOT/notify U rep_dir_fail/dir1/CVSROOT/rcsinfo U rep_dir_fail/dir1/CVSROOT/rcstemplate U rep_dir_fail/dir1/CVSROOT/taginfo U rep_dir_fail/dir1/CVSROOT/unwrap_dir U rep_dir_fail/dir1/CVSROOT/unwrap_file U rep_dir_fail/dir1/CVSROOT/wrap_dir U rep_dir_fail/dir1/CVSROOT/wrap_file cvs export: Updating rep_dir_fail/dir1/rep_dir U rep_dir_fail/dir1/rep_dir/rep_dir-file1 U rep_dir_fail/dir1/rep_dir/rep_dir-file2 cvs export: Updating rep_dir_fail/dir1/rep_dir/dir1 U rep_dir_fail/dir1/rep_dir/dir1/dir1-file1 U rep_dir_fail/dir1/rep_dir/dir1/dir1-file2 cvs export: Updating rep_dir_fail/dir1/rep_dir/dir2 U rep_dir_fail/dir1/rep_dir/dir2/dir2-file1 U rep_dir_fail/dir1/rep_dir/dir2/dir2-file2 % cvs export -D today mod_work U rep_dir_work/rep_dir-file1 cvs export: Updating dir1 U dir1/dir1-file1 U dir1/dir1-file2 % ls rep_dir_fail rep_dir_work % gdiff -r rep_dir_work rep_dir_fail Only in rep_dir_fail/dir1: CVSROOT Only in rep_dir_work/dir1: dir1-file1 Only in rep_dir_work/dir1: dir1-file2 Only in rep_dir_fail/dir1: rep_dir Cheers, Tom McConnell -- Tom McConnell | mailto:tmcconne@sedona.ch.intel.com | The opinions expressed are my own. Intel Corporation | No one in their right mind would claim them. Chandler, AZ, USA | Work: +1 602-554-8229 Mobile: +1 602-570-1389 Lund, Sweden | Work: +46(0)46 19 42 64 Mobile: +46(0)70 324 32 79