With --copy-dest, rsync tries to copy basis files with unchanged data into the destination even in --dry-run mode; fortunately, the attempt is blocked by do_open. Rsync should itemize the local copy without trying to actually perform it. To reproduce this bug: mkdir src dest basis echo foo >src/file echo foo >basis/file rsync -r -ni --checksum --copy-dest=../basis/ src/ dest/ Result: rsync: open "/path/to/dest/file": Success (0) >f+++++++++ file rsync error: some files could not be transferred (code 23) at main.c(1053) [sender=3.0.0pre4]
Created attachment 2955 [details] Fix: skip the call to copy_file in dry-run mode
Your fix is now in CVS. Thanks!