diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2021-07-28 18:10:55 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-28 09:10:55 -0700 |
commit | efc81c93a9fca45ba08119145a2d282f477f01b4 (patch) | |
tree | 33d74b2d4dd74b56f01c36b5d1adee08a36d6031 | |
parent | 35d4f6737a57c88978b6e954506e9c73f8c10ccf (diff) | |
download | rsync-efc81c93a9fca45ba08119145a2d282f477f01b4.tar.gz |
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.)
-rw-r--r-- | receiver.c | 2 | ||||
-rw-r--r-- | testsuite/delay-updates.test | 21 |
2 files changed, 22 insertions, 1 deletions
@@ -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 |