X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/bf26aa22195b671e859d2c9147ffdda0a89efb98..32cbfe7b17ba8ec661fc27fd773909709d100e8a:/main.c diff --git a/main.c b/main.c index 14e8c069..3cc21b59 100644 --- a/main.c +++ b/main.c @@ -32,7 +32,6 @@ extern int am_sender; extern int am_generator; extern int am_daemon; extern int blocking_io; -extern int delete_before; extern int remove_sent_files; extern int daemon_over_rsh; extern int need_messages_from_generator; @@ -48,6 +47,8 @@ extern int recurse; extern int fuzzy_basis; extern int relative_paths; extern int rsync_port; +extern int inplace; +extern int make_backups; extern int whole_file; extern int read_batch; extern int write_batch; @@ -497,8 +498,8 @@ static int do_recv(int f_in,int f_out,struct file_list *flist,char *local_name) int pid; int status = 0; int error_pipe[2], name_pipe[2]; - BOOL need_name_pipe = (basis_dir[0] || partial_dir || fuzzy_basis) - && !dry_run; + BOOL need_name_pipe = (basis_dir[0] || partial_dir || fuzzy_basis + || (inplace && make_backups)) && !dry_run; /* The receiving side mustn't obey this, or an existing symlink that * points to an identical file won't be replaced by the referent. */ @@ -507,11 +508,6 @@ static int do_recv(int f_in,int f_out,struct file_list *flist,char *local_name) if (preserve_hard_links) init_hard_links(flist); - if (delete_before && !local_name && flist->count > 0) { - /* Moved here from recv_files() to prevent a race condition */ - delete_files(flist); - } - if (fd_pair(error_pipe) < 0 || (need_name_pipe && fd_pair(name_pipe) < 0)) { rsyserr(FERROR, errno, "pipe failed in do_recv");