From 1f8413449dc6430e59b7383c25454de72503f007 Mon Sep 17 00:00:00 2001 From: David Dykstra Date: Tue, 23 Mar 1999 22:20:10 +0000 Subject: [PATCH] Fix bug with --compare-dest option where missing parent directories in the target destination were not getting created. There was a case in receiver.c to do that but it was only getting invoked when the -R option is specified, although I don't know why it was limited to that. It's too bad I didn't get a chance to more fully test the use of --compare-dest by my nsbd program before releasing rsync 2.3.0. I'll probably need to put a workaround in nsbd too until the next release of rsync. --- receiver.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/receiver.c b/receiver.c index 0533fffe..816d69fd 100644 --- a/receiver.c +++ b/receiver.c @@ -417,7 +417,8 @@ int recv_files(int f_in,struct file_list *flist,char *local_name,int f_gen) fd2 = do_open(fnametmp,O_WRONLY|O_CREAT|O_EXCL, file->mode & INITACCESSPERMS); - if (fd2 == -1 && relative_paths && errno == ENOENT && + if (fd2 == -1 && errno == ENOENT && + (relative_paths || (compare_dest != NULL)) && create_directory_path(fnametmp) == 0) { fd2 = do_open(fnametmp,O_WRONLY|O_CREAT|O_EXCL, file->mode & INITACCESSPERMS); -- 2.34.1