Hi! This problem gave me quite a headache tonight... I more or less have this source directory: hop@krautesel:/var/tmp$ ls -laR from/ from/: total 12 drwxrwxr-x 3 hop hop 4096 Feb 8 03:34 . drwxrwxrwt 6 root root 4096 Feb 8 03:34 .. drwxrwxr-x 2 hop hop 4096 Feb 8 03:18 CVS -rw-rw-r-- 1 hop hop 0 Feb 8 03:18 a_gallery.php -rw-rw-r-- 1 hop hop 0 Feb 8 03:18 doctype.inc -rw-rw-r-- 1 hop hop 0 Feb 8 03:18 footer.inc -rw-rw-r-- 1 hop hop 0 Feb 8 03:18 gallery.php -rw-rw-r-- 1 hop hop 0 Feb 8 03:18 index.php drwxrwxr-x 5 hop hop 4096 Feb 8 03:12 projects from/projects: total 24 drwxrwxr-x 5 hop hop 4096 Feb 8 03:12 . drwxrwxr-x 3 hop hop 4096 Feb 8 03:34 .. -rw-rw-r-- 1 hop hop 2 Feb 8 03:12 .cvsignore drwxrwxr-x 2 hop hop 4096 Feb 8 03:12 CVS drwxrwxr-x 2 hop hop 4096 Feb 8 03:35 medien_welten drwxrwxr-x 2 hop hop 4096 Feb 8 03:35 rodeoworlds [there is more, but I reduced it, so that I could see the effect better. All I describe here is also valid for the original dir with data in the files, etc.] The file from/projects/.cvsignore contains exactly one line, containing exactly one asterisk `*'. (Maybe I shouldn't have done this, but it works exactly they way I intended it with cvs) Now, when I do the following: hop@krautesel:/var/tmp$ rsync -Can from/ to/ (to/ still being empty at that time) the following happens: building file list ... done footer.inc gallery.php index.php wrote 154 bytes read 32 bytes 372.00 bytes/sec total size is 0 speedup is 0.00 Yeah, yeah.. Doctor said "So don't do it", and i don't do it anymore, but I thought you might be interested ;) I have checked every other place or environment variable that has to do witch cvsignore, but found nothing. Also the problem instantly goes away if i explicitly name the to subdirs of projects/ and remove the *. The files that are not copied over to to/ are chosen at random, it seems, altough there are several patterns to be seen: -) all of the a_*.php files are omitted -) all but one of the *.inc files are omitted -) the .cvsignore in projects/ is omitted, but not the one in from/ Any ideas? greetings!hop -- pathological-techno-fetishist-with-social-deficit
Sorry!! Forgot to include my version: hop@krautesel:/var/tmp$ rsync --version rsync version 2.6.0 protocol version 27 Copyright (C) 1996-2004 by Andrew Tridgell and others <http://rsync.samba.org/> Capabilities: 64-bit files, socketpairs, hard links, symlinks, batchfiles, IPv6, 64-bit system inums, 64-bit internal inums Modified for Debian to have --bwlimit-mod, a variation on the --bwlimit algorithm. rsync comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. See the GNU General Public Licence for details. !hop -- pathological-techno-fetishist-with-social-deficit
On Sun, Feb 08, 2004 at 04:21:01AM +0100, Christoph Schindler wrote:> hop@krautesel:/var/tmp$ rsync -Can from/ to/ > The files that are not copied over to to/ are chosen at random, it > seems, altough there are several patterns to be seen:This is a bug that slipped into 2.6.0 that is fixed in the current CVS source -- namely that the local excludes from a subdirectory are put into the global exclude list rather than the local one that would only affect that one subdir. There's a single line that changed in flist.c: --- flist.c 13 Jan 2004 06:27:30 -0000 1.164 +++ flist.c 17 Jan 2004 01:16:49 -0000 1.165 @@ -942,7 +942,7 @@ static void send_directory(int f, struct if (cvs_exclude) { if (strlen(fname) + strlen(".cvsignore") <= MAXPATHLEN - 1) { strcpy(p, ".cvsignore"); - add_exclude_file(&exclude_list,fname,MISSING_OK,ADD_EXCLUDE); + add_exclude_file(&local_exclude_list,fname,MISSING_OK,ADD_EXCLUDE); } else { io_error |= IOERR_GENERAL; rprintf(FINFO, ..wayne..