-- Matt McCutchen <hashproduct@gmail.com>
-based-on: 55b2a06812e39f15f52e92b979600cb82be210cb
+based-on: 6c8ca91c731b7bf2b081694bda85b7dadc2b7aff
diff --git a/options.c b/options.c
--- a/options.c
+++ b/options.c
-@@ -32,6 +32,7 @@ extern filter_rule_list filter_list;
+@@ -34,6 +34,7 @@ extern filter_rule_list filter_list;
extern filter_rule_list daemon_filter_list;
int make_backups = 0;
/**
* If 1, send the whole file as literal data rather than trying to
-@@ -771,6 +772,7 @@ static struct poptOption long_options[] = {
+@@ -777,6 +778,7 @@ static struct poptOption long_options[] = {
{"bwlimit", 0, POPT_ARG_STRING, &bwlimit_arg, OPT_BWLIMIT, 0, 0 },
{"no-bwlimit", 0, POPT_ARG_VAL, &bwlimit, 0, 0, 0 },
{"backup", 'b', POPT_ARG_VAL, &make_backups, 1, 0, 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 },
-@@ -2791,6 +2793,8 @@ void server_options(char **args, int *argc_p)
+@@ -2840,6 +2842,8 @@ void server_options(char **args, int *argc_p)
} else {
if (skip_compress)
args[ac++] = safe_arg("--skip-compress", skip_compress);
diff --git a/rsync.1.md b/rsync.1.md
--- a/rsync.1.md
+++ b/rsync.1.md
-@@ -396,6 +396,7 @@ has its own detailed description later in this man page.
+@@ -477,6 +477,7 @@ has its own detailed description later in this manpage.
--existing skip creating new files on receiver
--ignore-existing skip updating files that exist on receiver
--remove-source-files sender removes synchronized files (non-dir)
--del an alias for --delete-during
--delete delete extraneous files from dest dirs
--delete-before receiver deletes before xfer, not during
-@@ -1774,6 +1775,17 @@ your home directory (remove the '=' for that).
- Starting with 3.1.0, rsync will skip the sender-side removal (and output an
- error) if the file's size or modify time has not stayed unchanged.
+@@ -1893,6 +1894,17 @@ expand it.
+ not remove a file the receiver just verified, such as when the user
+ accidentally makes the source and destination directory the same path.
+0. `--source-backup`
+
diff --git a/sender.c b/sender.c
--- a/sender.c
+++ b/sender.c
-@@ -42,6 +42,7 @@ extern int protocol_version;
+@@ -44,6 +44,7 @@ extern int protocol_version;
extern int remove_source_files;
extern int updating_basis_file;
extern int make_backups;
extern int inplace;
extern int inplace_partial;
extern int batch_fd;
-@@ -128,6 +129,7 @@ void successful_send(int ndx)
+@@ -131,6 +132,7 @@ void successful_send(int ndx)
struct file_struct *file;
struct file_list *flist;
STRUCT_STAT st;
if (!remove_source_files)
return;
-@@ -152,7 +154,11 @@ void successful_send(int ndx)
+@@ -162,7 +164,11 @@ void successful_send(int ndx)
return;
}