./configure (optional if already run)
make
-based-on: d1679358744176d1947668f601328268511716c4
+based-on: e94bad1c156fc3910f24e2b3b71a81b0b0bdeb70
diff --git a/generator.c b/generator.c
--- a/generator.c
+++ b/generator.c
-@@ -1821,7 +1821,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1837,7 +1837,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
goto notify_others;
if (read_batch || whole_file) {
if (!(backupptr = get_backup_name(fname)))
goto cleanup;
if (!(back_file = make_file(fname, NULL, NULL, 0, NO_FILTERS)))
-@@ -1857,7 +1857,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1873,7 +1873,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
goto notify_others;
}
if (!(backupptr = get_backup_name(fname))) {
close(fd);
goto cleanup;
-@@ -1981,7 +1981,7 @@ int atomic_create(struct file_struct *file, char *fname, const char *slnk, const
+@@ -1997,7 +1997,7 @@ int atomic_create(struct file_struct *file, char *fname, const char *slnk, const
skip_atomic = 0;
if (del_for_flag) {
diff --git a/options.c b/options.c
--- a/options.c
+++ b/options.c
-@@ -926,7 +926,8 @@ static struct poptOption long_options[] = {
+@@ -766,7 +766,8 @@ static struct poptOption long_options[] = {
{"no-i", 0, POPT_ARG_VAL, &itemize_changes, 0, 0, 0 },
{"bwlimit", 0, POPT_ARG_STRING, &bwlimit_arg, OPT_BWLIMIT, 0, 0 },
{"no-bwlimit", 0, POPT_ARG_VAL, &bwlimit, 0, 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 },
-@@ -2667,6 +2668,10 @@ void server_options(char **args, int *argc_p)
+@@ -2726,6 +2727,10 @@ void server_options(char **args, int *argc_p)
}
if (am_sender) {
--backup-dir=DIR make backups into hierarchy based in DIR
--suffix=SUFFIX backup suffix (default ~ w/o --backup-dir)
--update, -u skip files that are newer on the receiver
-@@ -836,6 +837,13 @@ your home directory (remove the '=' for that).
+@@ -856,6 +857,13 @@ your home directory (remove the '=' for that).
trailing inclusion/exclusion of `*`, the auto-added rule would never be
reached).
+
0. `--backup-dir=DIR`
- In combination with the `--backup` option, this tells rsync to store all
+ This implies the `--backup` option, and tells rsync to store all
diff --git a/rsync.c b/rsync.c
--- a/rsync.c
+++ b/rsync.c
-@@ -709,7 +709,7 @@ int finish_transfer(const char *fname, const char *fnametmp,
+@@ -721,7 +721,7 @@ int finish_transfer(const char *fname, const char *fnametmp,
goto do_set_file_attrs;
}