From: Wayne Davison Date: Fri, 21 May 2004 09:14:48 +0000 (+0000) Subject: Fixed failed hunks. X-Git-Url: https://mattmccutchen.net/rsync/rsync-patches.git/commitdiff_plain/7b675ff5734df9400fa7be8f65daac400bf71efd Fixed failed hunks. --- diff --git a/atimes.diff b/atimes.diff index e69e246..a453786 100644 --- a/atimes.diff +++ b/atimes.diff @@ -5,7 +5,7 @@ command before "make": --- batch.c 15 May 2004 19:31:10 -0000 1.32 -+++ batch.c 18 May 2004 09:26:41 -0000 ++++ batch.c 21 May 2004 08:47:28 -0000 @@ -335,6 +335,8 @@ void show_flist(int index, struct file_s rprintf(FINFO, "flist->flags=%#x\n", fptr[i]->flags); rprintf(FINFO, "flist->modtime=%#lx\n", @@ -16,7 +16,7 @@ command before "make": (double) fptr[i]->length); rprintf(FINFO, "flist->mode=%#o\n", (int) fptr[i]->mode); --- flist.c 16 May 2004 23:54:12 -0000 1.224 -+++ flist.c 18 May 2004 09:26:42 -0000 ++++ flist.c 21 May 2004 08:47:28 -0000 @@ -57,6 +57,7 @@ extern int relative_paths; extern int implied_dirs; extern int copy_links; @@ -128,7 +128,7 @@ command before "make": file->mode = st.st_mode; file->uid = st.st_uid; --- generator.c 18 May 2004 08:50:17 -0000 1.85 -+++ generator.c 18 May 2004 09:26:42 -0000 ++++ generator.c 21 May 2004 08:47:28 -0000 @@ -100,7 +100,7 @@ static int skip_file(char *fname, struct return 0; } @@ -148,7 +148,7 @@ command before "make": rprintf(FINFO,"%s is newer\n",fname); return; --- options.c 6 May 2004 21:08:01 -0000 1.148 -+++ options.c 18 May 2004 09:26:42 -0000 ++++ options.c 21 May 2004 08:47:28 -0000 @@ -46,6 +46,7 @@ int preserve_devices = 0; int preserve_uid = 0; int preserve_gid = 0; @@ -182,8 +182,8 @@ command before "make": if (preserve_perms) argstr[x++] = 'p'; if (recurse) ---- rsync.c 15 May 2004 19:31:10 -0000 1.139 -+++ rsync.c 18 May 2004 09:26:42 -0000 +--- rsync.c 21 May 2004 08:43:03 -0000 1.140 ++++ rsync.c 21 May 2004 08:47:29 -0000 @@ -25,6 +25,7 @@ extern int verbose; extern int dry_run; @@ -192,9 +192,9 @@ command before "make": extern int am_root; extern int am_sender; extern int am_generator; -@@ -140,17 +141,31 @@ int set_perms(char *fname,struct file_st - - if (!preserve_times || S_ISLNK(st->st_mode)) +@@ -143,17 +144,31 @@ int set_perms(char *fname,struct file_st + if (!preserve_times || S_ISLNK(st->st_mode) + || (make_backups && !backup_dir && S_ISDIR(st->st_mode))) flags |= PERMS_SKIP_MTIME; - if (!(flags & PERMS_SKIP_MTIME) - && cmp_modtime(st->st_mtime, file->modtime) != 0) { @@ -229,7 +229,7 @@ command before "make": change_uid = am_root && preserve_uid && st->st_uid != file->uid; --- rsync.h 16 May 2004 07:28:24 -0000 1.204 -+++ rsync.h 18 May 2004 09:26:43 -0000 ++++ rsync.h 21 May 2004 08:47:29 -0000 @@ -54,6 +54,7 @@ #define XMIT_HAS_IDEV_DATA (1<<9) #define XMIT_SAME_DEV (1<<10) @@ -255,7 +255,7 @@ command before "make": gid_t gid; mode_t mode; --- rsync.yo 7 May 2004 00:18:37 -0000 1.169 -+++ rsync.yo 18 May 2004 09:26:43 -0000 ++++ rsync.yo 21 May 2004 08:47:29 -0000 @@ -299,6 +299,7 @@ verb( -g, --group preserve group -D, --devices preserve devices (root only) @@ -264,20 +264,20 @@ command before "make": -S, --sparse handle sparse files efficiently -n, --dry-run show what would have been transferred -W, --whole-file copy whole files, no incremental checks -@@ -545,6 +546,11 @@ modified cannot be effective; in other w - cause the next transfer to behave as if it used -I, and all files will have +@@ -546,6 +547,11 @@ cause the next transfer to behave as if their checksums compared and show up in log messages even if they haven't changed. -+ + +dit(bf(-A, --copy-atimes)) This tells rsync to transfer access times +along with the files and update them on the remote system. Note that +reading the source file may update the atime and hence repeated rsync +copies with --copy-atimes may copy files unnecessarily. - ++ dit(bf(-n, --dry-run)) This tells rsync to not do any file transfers, instead it will just report the actions it would have taken. + --- tls.c 15 May 2004 19:09:42 -0000 1.20 -+++ tls.c 18 May 2004 09:26:44 -0000 ++++ tls.c 21 May 2004 08:47:30 -0000 @@ -39,6 +39,7 @@ @@ -413,16 +413,15 @@ command before "make": return 0; } ---- util.c 15 May 2004 19:31:10 -0000 1.143 -+++ util.c 18 May 2004 09:26:44 -0000 -@@ -124,32 +124,40 @@ void overflow(char *str) +--- util.c 21 May 2004 08:40:25 -0000 1.144 ++++ util.c 21 May 2004 08:47:30 -0000 +@@ -127,31 +127,39 @@ void overflow(char *str) -int set_modtime(char *fname, time_t modtime) +int set_times(char *fname, time_t modtime, time_t atime) { - extern int dry_run; if (dry_run) return 0; @@ -480,10 +479,10 @@ command before "make": -int cmp_modtime(time_t file1, time_t file2) +int cmp_time(time_t file1, time_t file2) { - extern int modify_window; - + if (file2 > file1) { + if (file2 - file1 <= modify_window) --- /dev/null 1 Jan 1970 00:00:00 -0000 -+++ testsuite/copy-atimes.test 18 May 2004 09:26:44 -0000 ++++ testsuite/copy-atimes.test 21 May 2004 08:47:30 -0000 @@ -0,0 +1,19 @@ +#! /bin/sh + @@ -505,7 +504,7 @@ command before "make": +# The script would have aborted on error, so getting here means we've won. +exit 0 --- testsuite/rsync.fns 18 May 2004 00:41:55 -0000 1.60 -+++ testsuite/rsync.fns 18 May 2004 09:26:44 -0000 ++++ testsuite/rsync.fns 21 May 2004 08:47:30 -0000 @@ -50,7 +50,7 @@ printmsg() { diff --git a/dir-times.diff b/dir-times.diff index 68ca5d6..1b3d384 100644 --- a/dir-times.diff +++ b/dir-times.diff @@ -1,5 +1,5 @@ --- options.c 6 May 2004 21:08:01 -0000 1.148 -+++ options.c 18 May 2004 09:48:58 -0000 ++++ options.c 21 May 2004 08:54:54 -0000 @@ -46,6 +46,7 @@ int preserve_devices = 0; int preserve_uid = 0; int preserve_gid = 0; @@ -35,8 +35,8 @@ if (preserve_perms) argstr[x++] = 'p'; if (recurse) ---- rsync.c 15 May 2004 19:31:10 -0000 1.139 -+++ rsync.c 18 May 2004 09:48:58 -0000 +--- rsync.c 21 May 2004 08:43:03 -0000 1.140 ++++ rsync.c 21 May 2004 08:54:54 -0000 @@ -25,6 +25,7 @@ extern int verbose; extern int dry_run; @@ -45,14 +45,15 @@ extern int am_root; extern int am_sender; extern int am_generator; -@@ -138,14 +139,16 @@ int set_perms(char *fname,struct file_st +@@ -140,15 +141,16 @@ int set_perms(char *fname,struct file_st st = &st2; } -- if (!preserve_times || S_ISLNK(st->st_mode)) +- if (!preserve_times || S_ISLNK(st->st_mode) +- || (make_backups && !backup_dir && S_ISDIR(st->st_mode))) - flags |= PERMS_SKIP_MTIME; + if (S_ISDIR(st->st_mode)) { -+ if (!preserve_dir_times) ++ if (!preserve_dir_times || (make_backups && !backup_dir)) + flags |= PERMS_SKIP_MTIME; + } else { + if (!preserve_times || S_ISLNK(st->st_mode)) @@ -69,7 +70,7 @@ full_fname(fname)); return 0; --- rsync.yo 7 May 2004 00:18:37 -0000 1.169 -+++ rsync.yo 18 May 2004 09:48:58 -0000 ++++ rsync.yo 21 May 2004 08:54:54 -0000 @@ -298,7 +298,8 @@ verb( -o, --owner preserve owner (root only) -g, --group preserve group @@ -80,7 +81,7 @@ -S, --sparse handle sparse files efficiently -n, --dry-run show what would have been transferred -W, --whole-file copy whole files, no incremental checks -@@ -538,13 +539,22 @@ dit(bf(-D, --devices)) This option cause +@@ -538,14 +539,23 @@ dit(bf(-D, --devices)) This option cause block device information to the remote system to recreate these devices. This option is only available to the super-user. @@ -93,7 +94,7 @@ cause the next transfer to behave as if it used -I, and all files will have their checksums compared and show up in log messages even if they haven't changed. -+ + +dit(bf(-d, --dir-times)) This tells rsync to preserve the modification +times of directories transferred to the remote system. On a modern +rsync, these are left unpreserved by default to avoid causing problems @@ -102,11 +103,12 @@ +Note: when sending files to an older rsync, the --times option will +imply --dir-times (if the option causes an error on the receiving +system, omit it and use --times to preserve all file/directory times). - ++ dit(bf(-n, --dry-run)) This tells rsync to not do any file transfers, instead it will just report the actions it would have taken. + --- testsuite/chgrp.test 18 May 2004 00:41:35 -0000 1.11 -+++ testsuite/chgrp.test 18 May 2004 09:48:58 -0000 ++++ testsuite/chgrp.test 21 May 2004 08:54:54 -0000 @@ -26,7 +26,7 @@ do done sleep 2 @@ -117,7 +119,7 @@ # The script would have aborted on error, so getting here means we've won. exit 0 --- testsuite/chown.test 18 May 2004 00:41:35 -0000 1.5 -+++ testsuite/chown.test 18 May 2004 09:48:58 -0000 ++++ testsuite/chown.test 21 May 2004 08:54:55 -0000 @@ -28,7 +28,7 @@ chown 5001 "$name2" || test_skipped "Can chgrp 5002 "$name1" || test_skipped "Can't chgrp (probably need root)" chgrp 5003 "$name2" || test_skipped "Can't chgrp (probably need root)" @@ -128,7 +130,7 @@ # The script would have aborted on error, so getting here means we've won. exit 0 --- testsuite/daemon-gzip-download.test 18 May 2004 00:41:51 -0000 1.7 -+++ testsuite/daemon-gzip-download.test 18 May 2004 09:48:58 -0000 ++++ testsuite/daemon-gzip-download.test 21 May 2004 08:54:55 -0000 @@ -29,9 +29,9 @@ export RSYNC_CONNECT_PROG hands_setup @@ -142,7 +144,7 @@ # The script would have aborted on error, so getting here means we've won. exit 0 --- testsuite/daemon-gzip-upload.test 18 May 2004 00:41:51 -0000 1.7 -+++ testsuite/daemon-gzip-upload.test 18 May 2004 09:48:58 -0000 ++++ testsuite/daemon-gzip-upload.test 21 May 2004 08:54:55 -0000 @@ -23,9 +23,9 @@ export RSYNC_CONNECT_PROG hands_setup @@ -156,7 +158,7 @@ # The script would have aborted on error, so getting here means we've won. exit 0 --- testsuite/devices.test 18 May 2004 00:41:35 -0000 1.8 -+++ testsuite/devices.test 18 May 2004 09:48:58 -0000 ++++ testsuite/devices.test 21 May 2004 08:54:55 -0000 @@ -29,7 +29,7 @@ mknod "$fromdir/block" b 42 69 || test_s mknod "$fromdir/block2" b 42 73 || test_skipped "Can't create block device node unless root" mknod "$fromdir/block3" b 105 73 || test_skipped "Can't create block device node unless root" @@ -167,7 +169,7 @@ # The script would have aborted on error, so getting here means we've won. exit 0 --- testsuite/duplicates.test 18 May 2004 00:41:35 -0000 1.10 -+++ testsuite/duplicates.test 18 May 2004 09:48:59 -0000 ++++ testsuite/duplicates.test 21 May 2004 08:54:55 -0000 @@ -33,7 +33,7 @@ ln -s "$name1" "$name2" || fail "can't c outfile="$scratchdir/rsync.out" @@ -178,7 +180,7 @@ # Make sure each file was only copied once... --- testsuite/exclude.test 18 May 2004 00:41:38 -0000 1.6 -+++ testsuite/exclude.test 18 May 2004 09:48:59 -0000 ++++ testsuite/exclude.test 21 May 2004 08:54:55 -0000 @@ -63,7 +63,7 @@ EOF # Create the chk dir with what we expect to be excluded @@ -218,7 +220,7 @@ # The script would have aborted on error, so getting here means we've won. --- testsuite/hands.test 18 May 2004 00:41:46 -0000 1.13 -+++ testsuite/hands.test 18 May 2004 09:48:59 -0000 ++++ testsuite/hands.test 21 May 2004 08:54:55 -0000 @@ -11,19 +11,19 @@ hands_setup # Main script starts here @@ -245,7 +247,7 @@ # The script would have aborted on error, so getting here means we've won. exit 0 --- testsuite/hardlinks.test 18 May 2004 00:41:40 -0000 1.5 -+++ testsuite/hardlinks.test 18 May 2004 09:48:59 -0000 ++++ testsuite/hardlinks.test 21 May 2004 08:54:55 -0000 @@ -31,7 +31,7 @@ ln "$name1" "$name2" || fail "Can't crea ln "$name2" "$name3" || fail "Can't create hardlink" cp "$name2" "$name4" || fail "Can't copy file" @@ -256,7 +258,7 @@ # The script would have aborted on error, so getting here means we've won. exit 0 --- testsuite/longdir.test 18 May 2004 09:47:42 -0000 1.11 -+++ testsuite/longdir.test 18 May 2004 09:48:59 -0000 ++++ testsuite/longdir.test 21 May 2004 08:54:55 -0000 @@ -18,7 +18,7 @@ makepath "$longdir" || test_skipped "una touch "$longdir/1" || test_skipped "unable to create files in long directory" date > "$longdir/1" @@ -267,7 +269,7 @@ # The script would have aborted on error, so getting here means we've won. exit 0 --- testsuite/merge.test 18 May 2004 00:41:38 -0000 1.6 -+++ testsuite/merge.test 18 May 2004 09:48:59 -0000 ++++ testsuite/merge.test 21 May 2004 08:54:55 -0000 @@ -40,9 +40,9 @@ cp -p "$from2dir"/sub1/uno "$from3dir"/s cp -p "$from3dir"/sub2/subby "$chkdir"/sub2 @@ -281,7 +283,7 @@ # The script would have aborted on error, so getting here means we've won. exit 0 --- testsuite/ssh-basic.test 18 May 2004 00:41:46 -0000 1.7 -+++ testsuite/ssh-basic.test 18 May 2004 09:48:59 -0000 ++++ testsuite/ssh-basic.test 21 May 2004 08:54:55 -0000 @@ -28,7 +28,7 @@ fi # nothing to do. hands_setup @@ -298,7 +300,7 @@ -runtest "ssh: renamed file" 'checkit "$RSYNC --delete -avH -e ssh --rsync-path=$RSYNC \"$fromdir/\" \"localhost:$todir\"" "$fromdir/" "$todir"' +runtest "ssh: renamed file" 'checkit "$RSYNC --delete -advH -e ssh --rsync-path=$RSYNC \"$fromdir/\" \"localhost:$todir\"" "$fromdir/" "$todir"' --- testsuite/unsafe-links.test 18 May 2004 00:41:43 -0000 1.7 -+++ testsuite/unsafe-links.test 18 May 2004 09:48:59 -0000 ++++ testsuite/unsafe-links.test 21 May 2004 08:54:55 -0000 @@ -35,33 +35,33 @@ ln -s ../../unsafe/unsafefile "from/safe set -x diff --git a/early-chmod.diff b/early-chmod.diff index 62203ab..7a480ed 100644 --- a/early-chmod.diff +++ b/early-chmod.diff @@ -1,6 +1,6 @@ ---- rsync.c 15 May 2004 19:31:10 -0000 1.139 -+++ rsync.c 15 May 2004 20:17:41 -0000 -@@ -236,6 +236,9 @@ void finish_transfer(char *fname, char * +--- rsync.c 21 May 2004 08:43:03 -0000 1.140 ++++ rsync.c 21 May 2004 08:58:01 -0000 +@@ -239,6 +239,9 @@ void finish_transfer(char *fname, char * if (make_backups && !make_backup(fname)) return; @@ -10,7 +10,7 @@ /* move tmp file over real file */ ret = robust_rename(fnametmp, fname, file->mode & INITACCESSPERMS); if (ret < 0) { -@@ -243,7 +246,8 @@ void finish_transfer(char *fname, char * +@@ -246,7 +249,8 @@ void finish_transfer(char *fname, char * ret == -2 ? "copy" : "rename", full_fname(fnametmp), fname); do_unlink(fnametmp); @@ -21,7 +21,7 @@ ok_to_set_time ? 0 : PERMS_SKIP_MTIME); } --- t_stub.c 15 May 2004 19:31:05 -0000 1.8 -+++ t_stub.c 15 May 2004 20:17:41 -0000 ++++ t_stub.c 21 May 2004 08:58:01 -0000 @@ -26,6 +26,7 @@ * functions, so that module test harnesses can run standalone. **/ @@ -30,17 +30,17 @@ int modify_window = 0; int module_id = -1; struct exclude_list_struct server_exclude_list; ---- util.c 15 May 2004 19:31:10 -0000 1.143 -+++ util.c 15 May 2004 20:17:41 -0000 -@@ -28,6 +28,7 @@ - #include "rsync.h" +--- util.c 21 May 2004 08:40:25 -0000 1.144 ++++ util.c 21 May 2004 08:58:01 -0000 +@@ -29,6 +29,7 @@ extern int verbose; + extern int dry_run; +extern int am_root; + extern int module_id; + extern int modify_window; extern struct exclude_list_struct server_exclude_list; - - int sanitize_paths = 0; -@@ -261,6 +262,8 @@ int copy_file(char *source, char *dest, +@@ -263,6 +264,8 @@ int copy_file(char *source, char *dest, return -1; } @@ -49,7 +49,7 @@ ofd = do_open(dest, O_WRONLY | O_CREAT | O_TRUNC | O_EXCL, mode); if (ofd == -1) { rsyserr(FERROR, errno, "open %s", full_fname(dest)); -@@ -359,8 +362,8 @@ int robust_unlink(char *fname) +@@ -361,8 +364,8 @@ int robust_unlink(char *fname) #endif } @@ -60,7 +60,7 @@ int robust_rename(char *from, char *to, int mode) { int tries = 4; -@@ -377,10 +380,12 @@ int robust_rename(char *from, char *to, +@@ -379,10 +382,12 @@ int robust_rename(char *from, char *to, break; #endif case EXDEV: diff --git a/fsync.diff b/fsync.diff index d0ec598..78262f2 100644 --- a/fsync.diff +++ b/fsync.diff @@ -2,7 +2,7 @@ This patch from Sami Farin lets you specify --fsync if you want fsync() to be called on every file we write. --- options.c 6 May 2004 21:08:01 -0000 1.148 -+++ options.c 15 May 2004 20:20:27 -0000 ++++ options.c 21 May 2004 08:59:11 -0000 @@ -37,6 +37,7 @@ int make_backups = 0; **/ int whole_file = -1; @@ -27,59 +27,59 @@ to be called on every file we write. {"dry-run", 'n', POPT_ARG_NONE, &dry_run, 0, 0, 0 }, {"sparse", 'S', POPT_ARG_NONE, &sparse_files, 0, 0, 0 }, {"cvs-exclude", 'C', POPT_ARG_NONE, &cvs_exclude, 0, 0, 0 }, -@@ -943,6 +946,9 @@ void server_options(char **args,int *arg - args[ac++] = "--temp-dir"; +@@ -944,6 +947,9 @@ void server_options(char **args,int *arg args[ac++] = tmpdir; } -+ + + if (do_fsync && am_sender) + args[ac++] = "--fsync"; - ++ if (compare_dest && am_sender) { /* the server only needs this option if it is not the sender, ---- receiver.c 15 May 2004 19:31:10 -0000 1.78 -+++ receiver.c 15 May 2004 20:20:27 -0000 -@@ -46,6 +46,7 @@ extern int module_id; - extern int ignore_errors; + * and it may be an older version that doesn't know this +--- receiver.c 21 May 2004 08:27:04 -0000 1.79 ++++ receiver.c 21 May 2004 08:59:11 -0000 +@@ -47,6 +47,7 @@ extern int ignore_errors; extern int orig_umask; extern int keep_partial; + extern int checksum_seed; +extern int do_fsync; static void delete_one(char *fn, int is_dir) { -@@ -266,6 +267,12 @@ static int receive_data(int f_in,struct +@@ -271,6 +272,12 @@ static int receive_data(int f_in,struct + exit_cleanup(RERR_FILEIO); + } - if (fd != -1 && offset > 0 && sparse_end(fd) != 0) { - rsyserr(FERROR, errno, "write failed on %s", ++ if (do_fsync && (fd != -1) && (fsync(fd) != 0)) { ++ rsyserr(FERROR, errno, "fsync failed on %s", + full_fname(fname)); + exit_cleanup(RERR_FILEIO); + } + -+ if (do_fsync && (fd != -1) && (fsync(fd) != 0)) { -+ rsyserr(FERROR, errno, "fsync failed on %s", - full_fname(fname)); - exit_cleanup(RERR_FILEIO); - } ---- util.c 15 May 2004 19:31:10 -0000 1.143 -+++ util.c 15 May 2004 20:20:28 -0000 -@@ -29,6 +29,7 @@ + sum_end(file_sum1); - extern int verbose; + read_buf(f_in,file_sum2,MD4_SUM_LENGTH); +--- util.c 21 May 2004 08:40:25 -0000 1.144 ++++ util.c 21 May 2004 08:59:11 -0000 +@@ -32,6 +32,7 @@ extern int dry_run; + extern int module_id; + extern int modify_window; extern struct exclude_list_struct server_exclude_list; +extern int do_fsync; int sanitize_paths = 0; -@@ -291,6 +292,12 @@ int copy_file(char *source, char *dest, +@@ -297,6 +298,12 @@ int copy_file(char *source, char *dest, + return -1; + } - if (close(ofd) < 0) { - rsyserr(FERROR, errno, "close failed on %s", ++ if (do_fsync && fsync(ofd) < 0) { ++ rsyserr(FERROR, errno, "fsync failed on %s", + full_fname(dest)); + return -1; + } + -+ if (do_fsync && fsync(ofd) < 0) { -+ rsyserr(FERROR, errno, "fsync failed on %s", - full_fname(dest)); - return -1; - } + return 0; + } + diff --git a/fuzzy.diff b/fuzzy.diff index 951c62d..170c2f3 100644 --- a/fuzzy.diff +++ b/fuzzy.diff @@ -13,7 +13,7 @@ test suite, but otherwise UNTESTED.] Anyone who quotes me in their sig is an idiot. -- Rusty Russell. --- Makefile.in 15 May 2004 00:48:11 -0000 1.101 -+++ Makefile.in 15 May 2004 20:47:12 -0000 ++++ Makefile.in 21 May 2004 09:10:37 -0000 @@ -32,7 +32,7 @@ ZLIBOBJ=zlib/deflate.o zlib/infblock.o z zlib/inflate.o zlib/inftrees.o zlib/infutil.o zlib/trees.o \ zlib/zutil.o zlib/adler32.o @@ -23,17 +23,17 @@ test suite, but otherwise UNTESTED.] OBJS2=options.o flist.o io.o compat.o hlink.o token.o uidlist.o socket.o \ fileio.o batch.o clientname.o OBJS3=progress.o pipe.o ---- generator.c 15 May 2004 19:31:10 -0000 1.83 -+++ generator.c 15 May 2004 20:47:12 -0000 +--- generator.c 18 May 2004 08:50:17 -0000 1.85 ++++ generator.c 21 May 2004 09:10:37 -0000 @@ -51,6 +51,7 @@ extern int list_only; extern int only_existing; extern int orig_umask; extern int safe_symlinks; +extern int fuzzy; + extern struct exclude_list_struct server_exclude_list; - /* choose whether to skip a particular file */ -@@ -256,7 +257,61 @@ static void generate_and_send_sums(struc +@@ -258,7 +259,61 @@ static void generate_and_send_sums(struc } } @@ -79,7 +79,7 @@ test suite, but otherwise UNTESTED.] + + if (fd == -1 && compare_dest != NULL) + fd = open_alternate_base_comparedir(fname); - ++ + if (fd == -1 && fuzzy) + fd = open_alternate_base_fuzzy(fname); + @@ -89,13 +89,13 @@ test suite, but otherwise UNTESTED.] + rsyserr(FERROR, errno, "fstat %s", full_fname(fname)); + } + } -+ + + return fd; +} /** * Acts on file number @p i from @p flist, whose name is @p fname. -@@ -272,8 +327,6 @@ void recv_generator(char *fname, struct +@@ -274,8 +329,6 @@ void recv_generator(char *fname, struct STRUCT_STAT st; struct map_struct *mapbuf; int statret; @@ -104,7 +104,7 @@ test suite, but otherwise UNTESTED.] if (list_only) return; -@@ -400,107 +453,39 @@ void recv_generator(char *fname, struct +@@ -413,107 +466,39 @@ void recv_generator(char *fname, struct } #endif @@ -176,19 +176,15 @@ test suite, but otherwise UNTESTED.] - if (opt_ignore_existing && fnamecmp == fname) { - if (verbose > 1) - rprintf(FINFO,"%s exists\n",fname); -+ if ((fd = open_base_file(file, fname, statret, &st)) == -2) - return; +- return; - } - +- - if (update_only && cmp_modtime(st.st_mtime,file->modtime)>0 && fnamecmp == fname) { - if (verbose > 1) - rprintf(FINFO,"%s is newer\n",fname); - return; -+ if ((disable_deltas_p() || dry_run) && fd != -1) { -+ close(fd); -+ fd = -1; - } - +- } +- - if (skip_file(fname, file, &st)) { - if (fnamecmp == fname) - set_perms(fname, file, &st, PERMS_REPORT); @@ -197,15 +193,19 @@ test suite, but otherwise UNTESTED.] - - if (dry_run) { - write_int(f_out,i); -- return; ++ if ((fd = open_base_file(file, fname, statret, &st)) == -2) + return; - } -- + - if (disable_deltas_p()) { - write_int(f_out,i); - write_sum_head(f_out, NULL); - return; -- } -- ++ if ((disable_deltas_p() || dry_run) && fd != -1) { ++ close(fd); ++ fd = -1; + } + - /* open the file */ - fd = do_open(fnamecmp, O_RDONLY, 0); - @@ -232,7 +232,7 @@ test suite, but otherwise UNTESTED.] return; } -@@ -510,7 +495,7 @@ void recv_generator(char *fname, struct +@@ -523,7 +508,7 @@ void recv_generator(char *fname, struct mapbuf = NULL; if (verbose > 3) { @@ -242,7 +242,7 @@ test suite, but otherwise UNTESTED.] } --- options.c 6 May 2004 21:08:01 -0000 1.148 -+++ options.c 15 May 2004 20:47:13 -0000 ++++ options.c 21 May 2004 09:10:37 -0000 @@ -91,6 +91,7 @@ int ignore_errors = 0; int modify_window = 0; int blocking_io = -1; @@ -267,27 +267,27 @@ test suite, but otherwise UNTESTED.] {"protocol", 0, POPT_ARG_INT, &protocol_version, 0, 0, 0 }, #ifdef INET6 {"ipv4", '4', POPT_ARG_VAL, &default_af_hint, AF_INET, 0, 0 }, -@@ -964,6 +967,9 @@ void server_options(char **args,int *arg - args[ac++] = "--from0"; +@@ -965,6 +968,9 @@ void server_options(char **args,int *arg } } -+ + + if (fuzzy && am_sender) + args[ac++] = "--fuzzy"; - ++ *argc = ac; return; ---- receiver.c 15 May 2004 19:31:10 -0000 1.78 -+++ receiver.c 15 May 2004 20:47:13 -0000 -@@ -46,6 +46,7 @@ extern int module_id; - extern int ignore_errors; + +--- receiver.c 21 May 2004 08:27:04 -0000 1.79 ++++ receiver.c 21 May 2004 09:10:37 -0000 +@@ -47,6 +47,7 @@ extern int ignore_errors; extern int orig_umask; extern int keep_partial; + extern int checksum_seed; +extern int fuzzy; static void delete_one(char *fn, int is_dir) { -@@ -294,8 +295,6 @@ int recv_files(int f_in,struct file_list +@@ -295,8 +296,6 @@ int recv_files(int f_in,struct file_list char *fname, fbuf[MAXPATHLEN]; char template[MAXPATHLEN]; char fnametmp[MAXPATHLEN]; @@ -296,7 +296,7 @@ test suite, but otherwise UNTESTED.] struct map_struct *mapbuf; int i; struct file_struct *file; -@@ -358,35 +357,31 @@ int recv_files(int f_in,struct file_list +@@ -359,35 +358,31 @@ int recv_files(int f_in,struct file_list if (verbose > 2) rprintf(FINFO,"recv_files(%s)\n",fname); @@ -341,7 +341,7 @@ test suite, but otherwise UNTESTED.] receive_data(f_in, NULL, -1, NULL, file->length); close(fd1); continue; -@@ -407,8 +402,10 @@ int recv_files(int f_in,struct file_list +@@ -408,8 +403,10 @@ int recv_files(int f_in,struct file_list if (fd1 != -1 && st.st_size > 0) { mapbuf = map_file(fd1,st.st_size); diff --git a/inplace.diff b/inplace.diff index a8cdb6c..f3f5f79 100644 --- a/inplace.diff +++ b/inplace.diff @@ -1,28 +1,28 @@ Patch from Mark Curtis to implement the --inplace option. ---- match.c 13 May 2004 06:46:20 -0000 1.61 -+++ match.c 15 May 2004 20:23:18 -0000 -@@ -22,6 +22,7 @@ - extern int verbose; +--- match.c 21 May 2004 08:27:04 -0000 1.62 ++++ match.c 21 May 2004 09:03:09 -0000 +@@ -23,6 +23,7 @@ extern int verbose; extern int am_server; extern int do_progress; + extern int checksum_seed; +extern int inplace; typedef unsigned short tag; -@@ -197,6 +198,10 @@ static void hash_search(int f,struct sum - /* also make sure the two blocks are the same length */ - l = MIN((OFF_T)s->blength, len-offset); +@@ -200,6 +201,10 @@ static void hash_search(int f,struct sum if (l != s->sums[i].len) -+ continue; -+ -+ /* if inplace, make sure the offset is greater than where we are */ -+ if (inplace && offset > s->sums[i].offset) continue; ++ /* if inplace, make sure the offset is greater than where we are */ ++ if (inplace && offset > s->sums[i].offset) ++ continue; ++ if (verbose > 3) + rprintf(FINFO,"potential match at %.0f target=%.0f %.0f sum=%08x\n", + (double)offset,(double)j,(double)i,sum); --- options.c 6 May 2004 21:08:01 -0000 1.148 -+++ options.c 15 May 2004 20:23:19 -0000 ++++ options.c 21 May 2004 09:03:09 -0000 @@ -91,6 +91,7 @@ int ignore_errors = 0; int modify_window = 0; int blocking_io = -1; @@ -57,27 +57,27 @@ Patch from Mark Curtis to implement the --inplace option. if (files_from) { char *colon; if (*argc != 2 && !(am_server && am_sender && *argc == 1)) { -@@ -938,6 +944,9 @@ void server_options(char **args,int *arg - +@@ -939,6 +945,9 @@ void server_options(char **args,int *arg if (opt_ignore_existing && am_sender) args[ac++] = "--ignore-existing"; -+ + + if (inplace) + args[ac++] = "--inplace"; - ++ if (tmpdir) { args[ac++] = "--temp-dir"; ---- receiver.c 15 May 2004 19:31:10 -0000 1.78 -+++ receiver.c 15 May 2004 20:23:19 -0000 -@@ -46,6 +46,7 @@ extern int module_id; - extern int ignore_errors; + args[ac++] = tmpdir; +--- receiver.c 21 May 2004 08:27:04 -0000 1.79 ++++ receiver.c 21 May 2004 09:03:09 -0000 +@@ -47,6 +47,7 @@ extern int ignore_errors; extern int orig_umask; extern int keep_partial; + extern int checksum_seed; +extern int inplace; static void delete_one(char *fn, int is_dir) { -@@ -251,16 +252,28 @@ static int receive_data(int f_in,struct +@@ -252,16 +253,28 @@ static int receive_data(int f_in,struct sum_update(map,len); } @@ -110,7 +110,7 @@ Patch from Mark Curtis to implement the --inplace option. if (do_progress) end_progress(total_size); -@@ -412,37 +425,50 @@ int recv_files(int f_in,struct file_list +@@ -413,37 +426,50 @@ int recv_files(int f_in,struct file_list } else mapbuf = NULL; @@ -189,30 +189,30 @@ Patch from Mark Curtis to implement the --inplace option. } cleanup_set(fnametmp, fname, file, mapbuf, fd1, fd2); ---- rsync.c 15 May 2004 19:31:10 -0000 1.139 -+++ rsync.c 15 May 2004 20:23:19 -0000 -@@ -31,6 +31,7 @@ extern int am_generator; - extern int preserve_uid; - extern int preserve_gid; +--- rsync.c 21 May 2004 08:43:03 -0000 1.140 ++++ rsync.c 21 May 2004 09:03:09 -0000 +@@ -34,6 +34,7 @@ extern int force_delete; + extern int recurse; extern int make_backups; + extern char *backup_dir; +extern int inplace; /* -@@ -235,6 +236,11 @@ void finish_transfer(char *fname, char * - +@@ -239,6 +240,11 @@ void finish_transfer(char *fname, char * if (make_backups && !make_backup(fname)) return; -+ + + if (inplace) { + set_perms(fname,file,NULL,0); + return; + } - ++ /* move tmp file over real file */ ret = robust_rename(fnametmp, fname, file->mode & INITACCESSPERMS); + if (ret < 0) { --- rsync.yo 7 May 2004 00:18:37 -0000 1.169 -+++ rsync.yo 15 May 2004 20:23:20 -0000 ++++ rsync.yo 21 May 2004 09:03:10 -0000 @@ -289,6 +289,7 @@ verb( --backup-dir make backups into this directory --suffix=SUFFIX backup suffix (default ~ w/o --backup-dir) @@ -221,11 +221,10 @@ Patch from Mark Curtis to implement the --inplace option. -l, --links copy symlinks as symlinks -L, --copy-links copy the referent of all symlinks --copy-unsafe-links copy the referent of "unsafe" symlinks -@@ -477,6 +478,17 @@ is on the objects. In other words, if t - symlink where the destination has a file, the transfer would occur +@@ -478,6 +479,17 @@ symlink where the destination has a file regardless of the timestamps. This might change in the future (feel free to comment on this on the mailing list if you have an opinion). -+ + +dit(bf(--inplace)) This causes rsync not to create a new copy of the file +and then move it into place. Instead rsync will overwrite the existing +file, meaning that the rsync algorithm can't extract the full ammount of @@ -236,6 +235,7 @@ Patch from Mark Curtis to implement the --inplace option. + +WARNING: If the transfer is interrupted, you will have an inconsistent file +and the transfer should be run again. - ++ dit(bf(-l, --links)) When symlinks are encountered, recreate the symlink on the destination. + diff --git a/link-by-hash.diff b/link-by-hash.diff index daffd6f..19bf5c7 100644 --- a/link-by-hash.diff +++ b/link-by-hash.diff @@ -12,7 +12,7 @@ the file's name. --- Makefile.in 15 May 2004 00:48:11 -0000 1.101 -+++ Makefile.in 15 May 2004 20:29:17 -0000 ++++ Makefile.in 21 May 2004 09:07:58 -0000 @@ -35,7 +35,7 @@ OBJS1=rsync.o generator.o receiver.o cle main.o checksum.o match.o syscall.o log.o backup.o OBJS2=options.o flist.o io.o compat.o hlink.o token.o uidlist.o socket.o \ @@ -23,7 +23,7 @@ the file's name. popt_OBJS=popt/findme.o popt/popt.o popt/poptconfig.o \ popt/popthelp.o popt/poptparse.o --- /dev/null 1 Jan 1970 00:00:00 -0000 -+++ hashlink.c 15 May 2004 20:29:17 -0000 ++++ hashlink.c 21 May 2004 09:07:59 -0000 @@ -0,0 +1,342 @@ +/* + Copyright (C) Cronosys, LLC 2004 @@ -368,7 +368,7 @@ the file's name. + +#endif --- options.c 6 May 2004 21:08:01 -0000 1.148 -+++ options.c 15 May 2004 20:29:17 -0000 ++++ options.c 21 May 2004 09:07:59 -0000 @@ -121,6 +121,7 @@ char *log_format = NULL; char *password_file = NULL; char *rsync_path = RSYNC_PATH; @@ -422,29 +422,29 @@ the file's name. default: /* A large opt value means that set_refuse_options() * turned this option off (opt-BASE is its index). */ -@@ -951,6 +967,11 @@ void server_options(char **args,int *arg - */ - args[ac++] = link_dest ? "--link-dest" : "--compare-dest"; +@@ -953,6 +969,11 @@ void server_options(char **args,int *arg args[ac++] = compare_dest; -+ } -+ + } + + if (link_by_hash_dir && am_sender) { + args[ac++] = "--link-by-hash"; + args[ac++] = link_by_hash_dir; - } - ++ } ++ if (files_from && (!am_sender || remote_filesfrom_file)) { ---- receiver.c 15 May 2004 19:31:10 -0000 1.78 -+++ receiver.c 15 May 2004 20:29:17 -0000 -@@ -46,6 +46,7 @@ extern int module_id; - extern int ignore_errors; + if (remote_filesfrom_file) { + args[ac++] = "--files-from"; +--- receiver.c 21 May 2004 08:27:04 -0000 1.79 ++++ receiver.c 21 May 2004 09:07:59 -0000 +@@ -47,6 +47,7 @@ extern int ignore_errors; extern int orig_umask; extern int keep_partial; + extern int checksum_seed; +extern char *link_by_hash_dir; static void delete_one(char *fn, int is_dir) { -@@ -192,10 +193,11 @@ static int get_tmpname(char *fnametmp, c +@@ -193,10 +194,11 @@ static int get_tmpname(char *fnametmp, c static int receive_data(int f_in,struct map_struct *mapbuf,int fd,char *fname, @@ -457,18 +457,17 @@ the file's name. unsigned int len; OFF_T offset = 0; OFF_T offset2; -@@ -205,7 +207,9 @@ static int receive_data(int f_in,struct - char *map=NULL; +@@ -207,6 +209,9 @@ static int receive_data(int f_in,struct read_sum_head(f_in, &sum); -- + + if (md4) + mdfour_begin(&mdfour_data); -+ - sum_init(); ++ + sum_init(checksum_seed); while ((i = recv_token(f_in, &data)) != 0) { -@@ -222,6 +226,8 @@ static int receive_data(int f_in,struct +@@ -223,6 +228,8 @@ static int receive_data(int f_in,struct cleanup_got_literal = 1; sum_update(data,i); @@ -477,7 +476,7 @@ the file's name. if (fd != -1 && write_file(fd,data,i) != i) { rsyserr(FERROR, errno, "write failed on %s", -@@ -249,6 +255,8 @@ static int receive_data(int f_in,struct +@@ -250,6 +257,8 @@ static int receive_data(int f_in,struct see_token(map, len); sum_update(map,len); @@ -486,7 +485,7 @@ the file's name. } if (fd != -1 && write_file(fd,map,len) != (int) len) { -@@ -271,6 +279,8 @@ static int receive_data(int f_in,struct +@@ -272,6 +281,8 @@ static int receive_data(int f_in,struct } sum_end(file_sum1); @@ -495,7 +494,7 @@ the file's name. read_buf(f_in,file_sum2,MD4_SUM_LENGTH); if (verbose > 2) { -@@ -374,7 +384,7 @@ int recv_files(int f_in,struct file_list +@@ -375,7 +386,7 @@ int recv_files(int f_in,struct file_list if (fd1 != -1 && do_fstat(fd1,&st) != 0) { rsyserr(FERROR, errno, "fstat %s failed", full_fname(fnamecmp)); @@ -504,7 +503,7 @@ the file's name. close(fd1); continue; } -@@ -387,7 +397,7 @@ int recv_files(int f_in,struct file_list +@@ -388,7 +399,7 @@ int recv_files(int f_in,struct file_list */ rprintf(FERROR,"recv_files: %s is a directory\n", full_fname(fnamecmp)); @@ -513,7 +512,7 @@ the file's name. close(fd1); continue; } -@@ -439,7 +449,7 @@ int recv_files(int f_in,struct file_list +@@ -440,7 +451,7 @@ int recv_files(int f_in,struct file_list if (fd2 == -1) { rsyserr(FERROR, errno, "mkstemp %s failed", full_fname(fnametmp)); @@ -522,31 +521,30 @@ the file's name. if (mapbuf) unmap_file(mapbuf); if (fd1 != -1) close(fd1); continue; -@@ -452,7 +462,12 @@ int recv_files(int f_in,struct file_list +@@ -453,7 +464,11 @@ int recv_files(int f_in,struct file_list } /* recv file data */ - recv_ok = receive_data(f_in,mapbuf,fd2,fname,file->length); +#ifdef HAVE_LINK -+ if (link_by_hash_dir) { -+ file->u.sum = (char*)malloc (MD4_SUM_LENGTH); -+ } ++ if (link_by_hash_dir) ++ file->u.sum = (char*)malloc(MD4_SUM_LENGTH); +#endif + recv_ok = receive_data(f_in,mapbuf,fd2,fname,file->length,file->u.sum); log_recv(file, &initial_stats); ---- rsync.c 15 May 2004 19:31:10 -0000 1.139 -+++ rsync.c 15 May 2004 20:29:17 -0000 -@@ -31,6 +31,7 @@ extern int am_generator; - extern int preserve_uid; - extern int preserve_gid; +--- rsync.c 21 May 2004 08:43:03 -0000 1.140 ++++ rsync.c 21 May 2004 09:07:59 -0000 +@@ -34,6 +34,7 @@ extern int force_delete; + extern int recurse; extern int make_backups; + extern char *backup_dir; +extern char *link_by_hash_dir; /* -@@ -236,8 +237,12 @@ void finish_transfer(char *fname, char * +@@ -239,8 +240,12 @@ void finish_transfer(char *fname, char * if (make_backups && !make_backup(fname)) return; @@ -554,16 +552,16 @@ the file's name. - ret = robust_rename(fnametmp, fname, file->mode & INITACCESSPERMS); +#ifdef HAVE_LINK + if (link_by_hash_dir) -+ ret = link_by_hash(fnametmp,fname,file); ++ ret = link_by_hash(fnametmp, fname, file); + else +#endif + ret = robust_rename(fnametmp, fname, file->mode & INITACCESSPERMS); if (ret < 0) { rsyserr(FERROR, errno, "%s %s -> \"%s\"", ret == -2 ? "copy" : "rename", ---- rsync.h 13 May 2004 18:51:22 -0000 1.203 -+++ rsync.h 15 May 2004 20:29:18 -0000 -@@ -521,6 +521,14 @@ struct stats { +--- rsync.h 16 May 2004 07:28:24 -0000 1.204 ++++ rsync.h 21 May 2004 09:07:59 -0000 +@@ -522,6 +522,14 @@ struct stats { int current_file_index; }; diff --git a/remove-sent-files.diff b/remove-sent-files.diff index 03cd8ae..5321844 100644 --- a/remove-sent-files.diff +++ b/remove-sent-files.diff @@ -5,7 +5,7 @@ command before "make": --- io.c 15 May 2004 19:31:10 -0000 1.121 -+++ io.c 15 May 2004 20:15:14 -0000 ++++ io.c 21 May 2004 08:50:06 -0000 @@ -222,6 +222,14 @@ static void read_msg_fd(void) read_loop(fd, buf, 4); redo_list_add(IVAL(buf,0)); @@ -21,11 +21,10 @@ command before "make": case MSG_INFO: case MSG_ERROR: case MSG_LOG: -@@ -635,6 +643,16 @@ static int read_unbuffered(int fd, char - } +@@ -636,6 +644,16 @@ static int read_unbuffered(int fd, char read_loop(fd, buffer, remaining); bufferIdx = 0; -+ break; + break; + case MSG_SUCCESS: + if (remaining != 4) { + rprintf(FERROR, "invalid multi-message %d:%ld\n", @@ -35,11 +34,12 @@ command before "make": + read_loop(fd, line, remaining); + successful_send(IVAL(line, 0)); + remaining = 0; - break; ++ break; case MSG_INFO: case MSG_ERROR: ---- main.c 15 May 2004 19:31:10 -0000 1.194 -+++ main.c 15 May 2004 20:15:15 -0000 + if (remaining >= sizeof line) { +--- main.c 19 May 2004 22:19:19 -0000 1.195 ++++ main.c 21 May 2004 08:50:07 -0000 @@ -42,6 +42,7 @@ extern int list_only; extern int local_server; extern int log_got_error; @@ -48,7 +48,7 @@ command before "make": extern int orig_umask; extern int preserve_hard_links; extern int protocol_version; -@@ -566,6 +567,8 @@ void start_server(int f_in, int f_out, i +@@ -572,6 +573,8 @@ void start_server(int f_in, int f_out, i io_start_multiplex_out(f_out); if (am_sender) { @@ -57,18 +57,18 @@ command before "make": if (!read_batch) { recv_exclude_list(f_in); if (cvs_exclude) -@@ -631,6 +634,9 @@ int client_run(int f_in, int f_out, pid_ - io_flush(FULL_FLUSH); +@@ -638,6 +641,9 @@ int client_run(int f_in, int f_out, pid_ exit_cleanup(status); } -+ + + if (need_messages_from_generator) + io_start_multiplex_out(f_out); - ++ if (argc == 0) list_only = 1; + --- options.c 6 May 2004 21:08:01 -0000 1.148 -+++ options.c 15 May 2004 20:15:15 -0000 ++++ options.c 21 May 2004 08:50:07 -0000 @@ -84,6 +84,7 @@ int copy_unsafe_links = 0; int size_only = 0; int bwlimit = 0; @@ -124,27 +124,27 @@ command before "make": case OPT_EXCLUDE: add_exclude(&exclude_list, poptGetOptArg(pc), 0); break; -@@ -964,6 +973,9 @@ void server_options(char **args,int *arg - args[ac++] = "--from0"; +@@ -965,6 +974,9 @@ void server_options(char **args,int *arg } } -+ + + if (delete_sent_files) + args[ac++] = "--delete-sent-files"; - ++ *argc = ac; return; ---- receiver.c 15 May 2004 19:31:10 -0000 1.78 -+++ receiver.c 15 May 2004 20:15:15 -0000 -@@ -46,6 +46,7 @@ extern int module_id; - extern int ignore_errors; + +--- receiver.c 21 May 2004 08:27:04 -0000 1.79 ++++ receiver.c 21 May 2004 08:50:07 -0000 +@@ -47,6 +47,7 @@ extern int ignore_errors; extern int orig_umask; extern int keep_partial; + extern int checksum_seed; +extern int delete_sent_files; static void delete_one(char *fn, int is_dir) { -@@ -294,7 +295,7 @@ int recv_files(int f_in,struct file_list +@@ -295,7 +296,7 @@ int recv_files(int f_in,struct file_list char *fname, fbuf[MAXPATHLEN]; char template[MAXPATHLEN]; char fnametmp[MAXPATHLEN]; @@ -153,7 +153,7 @@ command before "make": char fnamecmpbuf[MAXPATHLEN]; struct map_struct *mapbuf; int i; -@@ -476,16 +477,20 @@ int recv_files(int f_in,struct file_list +@@ -477,16 +478,20 @@ int recv_files(int f_in,struct file_list cleanup_disable(); @@ -178,8 +178,8 @@ command before "make": } } } ---- rsync.h 13 May 2004 18:51:22 -0000 1.203 -+++ rsync.h 15 May 2004 20:15:15 -0000 +--- rsync.h 16 May 2004 07:28:24 -0000 1.204 ++++ rsync.h 21 May 2004 08:50:07 -0000 @@ -60,6 +60,7 @@ #define FLAG_TOP_DIR (1<<0) #define FLAG_HLINK_EOL (1<<1) /* generator only */ @@ -197,7 +197,7 @@ command before "make": MSG_REDO=4, /* reprocess indicated flist index */ MSG_ERROR=FERROR, MSG_INFO=FINFO, MSG_LOG=FLOG, /* remote logging */ --- rsync.yo 7 May 2004 00:18:37 -0000 1.169 -+++ rsync.yo 15 May 2004 20:15:16 -0000 ++++ rsync.yo 21 May 2004 08:50:08 -0000 @@ -312,6 +312,7 @@ verb( --delete delete files that don't exist on sender --delete-excluded also delete excluded files on receiver @@ -206,20 +206,20 @@ command before "make": --ignore-errors delete even if there are I/O errors --max-delete=NUM don't delete more than NUM files --partial keep partially transferred files -@@ -596,6 +597,11 @@ dit(bf(--delete-after)) By default rsync - receiving side before transferring files to try to ensure that there is +@@ -597,6 +598,11 @@ receiving side before transferring files sufficient space on the receiving filesystem. If you want to delete after transferring, use the --delete-after switch. Implies --delete. -+ + +dit(bf(--delete-sent-files)) This tells rsync to remove the source files +on the sending side that are successfully transferred to the receiving +side. Directories are not removed, nor are files that are identical on +both systems. - ++ dit(bf(--ignore-errors)) Tells --delete to go ahead and delete files even when there are I/O errors. + --- sender.c 15 May 2004 19:31:10 -0000 1.40 -+++ sender.c 15 May 2004 20:15:16 -0000 ++++ sender.c 21 May 2004 08:50:08 -0000 @@ -27,6 +27,7 @@ extern int dry_run; extern int am_server; extern int am_daemon;