The patches for 3.3.0pre1.
[rsync-patches.git] / source-backup.diff
index 0dd83c86f48d5342d668ba7ad34e071f999bc766..c557f954c54c72176d76c2a4566dcaa964a1c8de 100644 (file)
@@ -9,11 +9,11 @@ To use this patch, run these commands for a successful build:
 
 -- Matt McCutchen <hashproduct@gmail.com>
 
-based-on: d821e4cbfbc66848cdf91a336af26fdb89dd9a8f
+based-on: 9a06b2edb0ea1a226bcc642682c07bacd2ea47d3
 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;
@@ -21,7 +21,7 @@ diff --git a/options.c b/options.c
  
  /**
   * If 1, send the whole file as literal data rather than trying to
-@@ -773,6 +774,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 },
@@ -29,7 +29,7 @@ diff --git a/options.c b/options.c
    {"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 },
-@@ -2795,6 +2797,8 @@ void server_options(char **args, int *argc_p)
+@@ -2838,6 +2840,8 @@ void server_options(char **args, int *argc_p)
        } else {
                if (skip_compress)
                        args[ac++] = safe_arg("--skip-compress", skip_compress);
@@ -41,7 +41,7 @@ diff --git a/options.c b/options.c
 diff --git a/rsync.1.md b/rsync.1.md
 --- a/rsync.1.md
 +++ b/rsync.1.md
-@@ -397,6 +397,7 @@ has its own detailed description later in this manpage.
+@@ -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)
@@ -49,9 +49,9 @@ diff --git a/rsync.1.md b/rsync.1.md
  --del                    an alias for --delete-during
  --delete                 delete extraneous files from dest dirs
  --delete-before          receiver deletes before xfer, not during
-@@ -1783,6 +1784,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`
 +
@@ -70,7 +70,7 @@ diff --git a/rsync.1.md b/rsync.1.md
 diff --git a/sender.c b/sender.c
 --- a/sender.c
 +++ b/sender.c
-@@ -43,6 +43,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;
@@ -78,7 +78,7 @@ diff --git a/sender.c b/sender.c
  extern int inplace;
  extern int inplace_partial;
  extern int batch_fd;
-@@ -129,6 +130,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;
@@ -86,7 +86,7 @@ diff --git a/sender.c b/sender.c
  
        if (!remove_source_files)
                return;
-@@ -153,7 +155,11 @@ void successful_send(int ndx)
+@@ -162,7 +164,11 @@ void successful_send(int ndx)
                return;
        }