Add test and fix regression for --delay-updates (#192) (#204)

Fixes regression introduced with commit 3a7bf54ad5 (A resumed
partial-dir file is transferred in-place.)
This commit is contained in:
Natanael Copa
2021-07-28 18:10:55 +02:00
committed by GitHub
parent 35d4f6737a
commit efc81c93a9
2 changed files with 22 additions and 1 deletions

View File

@@ -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",

View File

@@ -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