From: Wayne Davison Date: Sat, 5 May 2012 15:01:09 +0000 (-0700) Subject: Set the modtime to 0 on a partial file. X-Git-Tag: v3.1.0pre1~49 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d51a3adb4fca3e6b1b046c6e570828f3bca8fe36;p=thirdparty%2Frsync.git Set the modtime to 0 on a partial file. Fixes debian bug 624826. --- diff --git a/cleanup.c b/cleanup.c index cf5f2122..147c3a7c 100644 --- a/cleanup.c +++ b/cleanup.c @@ -158,6 +158,7 @@ NORETURN void _exit_cleanup(int code, const char *file, int line) if (cleanup_got_literal && cleanup_fname && cleanup_new_fname && keep_partial && handle_partial_dir(cleanup_new_fname, PDIR_CREATE)) { + int tweak_modtime = 0; const char *fname = cleanup_fname; cleanup_fname = NULL; if (cleanup_fd_r != -1) @@ -166,8 +167,15 @@ NORETURN void _exit_cleanup(int code, const char *file, int line) flush_write_file(cleanup_fd_w); close(cleanup_fd_w); } + if (!partial_dir) { + /* We don't want to leave a partial file with a modern time or it + * could be skipped via --update. Setting the time to something + * really old also helps it to stand out as unfinished in an ls. */ + tweak_modtime = 1; + cleanup_file->modtime = 0; + } finish_transfer(cleanup_new_fname, fname, NULL, NULL, - cleanup_file, 0, !partial_dir); + cleanup_file, tweak_modtime, !partial_dir); } /* FALLTHROUGH */