--- rsync-3.0.7/options.c 2011-01-25 22:48:48.321864668 +0200 +++ rsync-3.0.7.vanished/options.c 2011-01-25 22:45:00.289582095 +0200 @@ -121,6 +121,7 @@ int checksum_seed = 0; int inplace = 0; int delay_updates = 0; +int ignore_vanished = 0; long block_size = 0; /* "long" because popt can't set an int32. */ char *skip_compress = NULL; item_list dparam_list = EMPTY_ITEM_LIST; @@ -574,6 +575,7 @@ {"delete-delay", 0, POPT_ARG_VAL, &delete_during, 2, 0, 0 }, {"delete-after", 0, POPT_ARG_NONE, &delete_after, 0, 0, 0 }, {"delete-excluded", 0, POPT_ARG_NONE, &delete_excluded, 0, 0, 0 }, + {"ignore-vanished", 0, POPT_ARG_NONE, &ignore_vanished, 0, 0, 0 }, {"remove-sent-files",0, POPT_ARG_VAL, &remove_source_files, 2, 0, 0 }, /* deprecated */ {"remove-source-files",0,POPT_ARG_VAL, &remove_source_files, 1, 0, 0 }, {"force", 0, POPT_ARG_VAL, &force_delete, 1, 0, 0 }, --- rsync-3.0.7/sender.c 2009-12-13 03:23:03.000000000 +0200 +++ rsync-3.0.7.vanished/sender.c 2011-01-25 22:48:26.834861230 +0200 @@ -42,6 +42,7 @@ extern int inplace; extern int batch_fd; extern int write_batch; +extern int ignore_vanished; extern struct stats stats; extern struct file_list *cur_flist, *first_flist, *dir_flist; @@ -282,12 +283,14 @@ fd = do_open(fname, O_RDONLY, 0); if (fd == -1) { if (errno == ENOENT) { - enum logcode c = am_daemon - && protocol_version < 28 ? FERROR + if (!ignore_vanished) { + enum logcode c = am_daemon + && protocol_version < 28 ? FERROR : FWARNING; - io_error |= IOERR_VANISHED; - rprintf(c, "file has vanished: %s\n", - full_fname(fname)); + io_error |= IOERR_VANISHED; + rprintf(c, "file has vanished: %s\n", + full_fname(fname)); + } } else { io_error |= IOERR_GENERAL; rsyserr(FERROR_XFER, errno,