summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWayne Davison <wayned@samba.org>2014-05-25 16:36:02 -0700
committerWayne Davison <wayned@samba.org>2014-05-25 16:43:14 -0700
commit3ce7a65c1107c84030e041655b13501ef0fe5222 (patch)
tree4693b2bb45cd4e4bbe8ca6cee85f82743669ceba
parentde8ec0b309705bf9987fd7d67874f7d1a6fa4f3b (diff)
downloadrsync-3ce7a65c1107c84030e041655b13501ef0fe5222.tar.gz
Make --omit-dir-times avoid early-create directories.
-rw-r--r--generator.c2
-rw-r--r--rsync.yo11
2 files changed, 13 insertions, 0 deletions
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)).