From: Natanael Copa Date: Wed, 28 Jul 2021 16:10:55 +0000 (+0200) Subject: Add test and fix regression for --delay-updates (#192) (#204) X-Git-Tag: v3.2.4pre1~76 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=efc81c93a9fca45ba08119145a2d282f477f01b4;p=thirdparty%2Frsync.git 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.) --- 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