Added a "overwriting_basis" arg to finish_transfer().
[rsync.git] / rsync.c
diff --git a/rsync.c b/rsync.c
index f8206e52e524942b49f8ac875843ad6550ff7d69..1b28c35e49267e1b5be02839642a4f12f58517b6 100644 (file)
--- a/rsync.c
+++ b/rsync.c
@@ -240,7 +240,7 @@ void sig_int(void)
 /* finish off a file transfer, renaming the file and setting the permissions
    and ownership */
 void finish_transfer(char *fname, char *fnametmp, struct file_struct *file,
-                    int ok_to_set_time)
+                    int ok_to_set_time, int overwriting_basis)
 {
        int ret;
 
@@ -250,7 +250,7 @@ void finish_transfer(char *fname, char *fnametmp, struct file_struct *file,
                goto do_set_perms;
        }
 
-       if (make_backups && !make_backup(fname))
+       if (make_backups && overwriting_basis && !make_backup(fname))
                return;
 
        /* Change permissions before putting the file into place. */