If the user specifies --backup with --delete (but without --backup-dir
authorWayne Davison <wayned@samba.org>
Fri, 16 Dec 2005 17:18:29 +0000 (17:18 +0000)
committerWayne Davison <wayned@samba.org>
Fri, 16 Dec 2005 17:18:29 +0000 (17:18 +0000)
and --delete-excluded), append a protect-filter rule onto the list of
filter rules.  We run this on both the client and server side so that
an older client talking to a newer server still gets the protection
rule.  (This rule will not cause compatibility problems with older
versions of rsync due to the graceful way that a protect rule turns
into an exclude rule if it needs to be sent to an older server.)

options.c

index 698f4fc..a66c8e0 100644 (file)
--- a/options.c
+++ b/options.c
@@ -1207,6 +1207,10 @@ int parse_arguments(int *argc, const char ***argv, int frommain)
                snprintf(err_buf, sizeof err_buf,
                        "--suffix cannot be a null string without --backup-dir\n");
                return 0;
+       } else if (delete_mode && !delete_excluded) {
+               snprintf(backup_dir_buf, sizeof backup_dir_buf,
+                       "P *%s", backup_suffix);
+               parse_rule(&filter_list, backup_dir_buf, 0, 0);
        }
        if (make_backups && !backup_dir)
                omit_dir_times = 1;