From 3ce7a65c1107c84030e041655b13501ef0fe5222 Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Sun, 25 May 2014 16:36:02 -0700 Subject: Make --omit-dir-times avoid early-create directories. --- generator.c | 2 ++ rsync.yo | 11 +++++++++++ 2 files changed, 13 insertions(+) diff --git a/generator.c b/generator.c index 53e9fbe5..0f7a5169 100644 --- a/generator.c +++ b/generator.c @@ -1353,6 +1353,8 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx, } else added_perms = 0; if (is_dir < 0) { + if (!(preserve_times & PRESERVE_DIR_TIMES)) + return; /* In inc_recurse mode we want to make sure any missing * directories get created while we're still processing * the parent dir (which allows us to touch the parent diff --git a/rsync.yo b/rsync.yo index c99d150c..94e6fd15 100644 --- a/rsync.yo +++ b/rsync.yo @@ -1175,6 +1175,17 @@ it is preserving modification times (see bf(--times)). If NFS is sharing the directories on the receiving side, it is a good idea to use bf(-O). This option is inferred if you use bf(--backup) without bf(--backup-dir). +This option also has the side-effect of avoiding early creation of directories +in incremental recursion copies. The default bf(--inc-recursive) copying +normally does an early-create pass of all the sub-directories in a parent +directory in order for it to be able to then set the modify time of the parent +directory right away (without having to delay that until a bunch of recursive +copying has finished). This early-create idiom is not necessary if directory +modify times are not being preserved, so it is skipped. Since early-create +directories don't have accurate mode, mtime, or ownership, the use of this +option can help when someone wants to avoid these partially-finished +directories. + dit(bf(-J, --omit-link-times)) This tells rsync to omit symlinks when it is preserving modification times (see bf(--times)). -- cgit v1.2.3