From efc81c93a9fca45ba08119145a2d282f477f01b4 Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Wed, 28 Jul 2021 18:10:55 +0200 Subject: [PATCH] Add test and fix regression for --delay-updates (#192) (#204) Fixes regression introduced with commit 3a7bf54ad520 (A resumed partial-dir file is transferred in-place.) --- receiver.c | 2 +- testsuite/delay-updates.test | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 testsuite/delay-updates.test diff --git a/receiver.c b/receiver.c index e85c4779..b5020d07 100644 --- a/receiver.c +++ b/receiver.c @@ -881,7 +881,7 @@ int recv_files(int f_in, int f_out, char *local_name) do_unlink(partialptr); handle_partial_dir(partialptr, PDIR_DELETE); } - } else if (keep_partial && partialptr && !one_inplace) { + } else if (keep_partial && partialptr && (!one_inplace || delay_updates)) { if (!handle_partial_dir(partialptr, PDIR_CREATE)) { rprintf(FERROR, "Unable to create partial-dir for %s -- discarding %s.\n", diff --git a/testsuite/delay-updates.test b/testsuite/delay-updates.test new file mode 100644 index 00000000..5896a9c7 --- /dev/null +++ b/testsuite/delay-updates.test @@ -0,0 +1,21 @@ +#! /bin/sh + +# Test rsync --delay-updates + +. "$suitedir/rsync.fns" + +mkdir "$fromdir" + +echo 1 > "$fromdir/foo" + +checkit "$RSYNC -aiv --delay-updates \"$fromdir/\" \"$todir/\"" "$fromdir" "$todir" + +mkdir "$todir/.~tmp~" +echo 2 > "$todir/.~tmp~/foo" +touch -r .. "$todir/.~tmp~/foo" "$todir/foo" +echo 3 > "$fromdir/foo" + +checkit "$RSYNC -aiv --delay-updates \"$fromdir/\" \"$todir/\"" "$fromdir" "$todir" + +# The script would have aborted on error, so getting here means we've won. +exit 0 -- 2.47.2