-- Matt McCutchen <hashproduct@gmail.com>
+based-on: 181c9faf928faad08ef095f4667afe460ec3bef6
diff --git a/options.c b/options.c
-index e7c6c61..77fb180 100644
--- a/options.c
+++ b/options.c
-@@ -33,6 +33,7 @@ extern struct filter_list_struct filter_list;
- extern struct filter_list_struct daemon_filter_list;
+@@ -33,6 +33,7 @@ extern filter_rule_list filter_list;
+ extern filter_rule_list daemon_filter_list;
int make_backups = 0;
+int make_source_backups = 0;
{"no-backup", 0, POPT_ARG_VAL, &make_backups, 0, 0, 0 },
{"backup-dir", 0, POPT_ARG_STRING, &backup_dir, 0, 0, 0 },
{"suffix", 0, POPT_ARG_STRING, &backup_suffix, 0, 0, 0 },
-@@ -2484,6 +2487,8 @@ void server_options(char **args, int *argc_p)
+@@ -2501,6 +2504,8 @@ void server_options(char **args, int *argc_p)
goto oom;
args[ac++] = arg;
}
/* --delete-missing-args needs the cooperation of both sides, but
diff --git a/rsync.yo b/rsync.yo
-index 941f7a5..4080af2 100644
--- a/rsync.yo
+++ b/rsync.yo
@@ -368,6 +368,7 @@ to the detailed description below for a complete description. verb(
--del an alias for --delete-during
--delete delete extraneous files from dest dirs
--delete-before receiver deletes before xfer, not during
-@@ -1182,6 +1183,14 @@ dit(bf(--remove-source-files)) This tells rsync to remove from the sending
+@@ -1197,6 +1198,14 @@ dit(bf(--remove-source-files)) This tells rsync to remove from the sending
side the files (meaning non-directories) that are a part of the transfer
and have been successfully duplicated on the receiving side.
receiving side (ones that aren't on the sending side), but only for the
directories that are being synchronized. You must have asked rsync to
diff --git a/sender.c b/sender.c
-index bf8221d..102540c 100644
--- a/sender.c
+++ b/sender.c
-@@ -39,6 +39,7 @@ extern int protocol_version;
+@@ -38,6 +38,7 @@ extern int protocol_version;
extern int remove_source_files;
extern int updating_basis_file;
extern int make_backups;
extern int inplace;
extern int batch_fd;
extern int write_batch;
-@@ -122,6 +123,7 @@ void successful_send(int ndx)
+@@ -121,6 +122,7 @@ void successful_send(int ndx)
char fname[MAXPATHLEN];
struct file_struct *file;
struct file_list *flist;
if (!remove_source_files)
return;
-@@ -132,7 +134,11 @@ void successful_send(int ndx)
+@@ -131,7 +133,11 @@ void successful_send(int ndx)
return;
f_name(file, fname);