[SCM] The rsync repository. - branch master updated
Rsync CVS commit messages
rsync-cvs at lists.samba.org
Sat May 7 22:57:25 UTC 2016
The branch, master has been updated
via 1f83b51 Improve the top-level section on include/exclude traversal. This is my edit of some suggestions by Karl O. Pinc.
from a5a7d3a Add --checksum-choice option to choose the checksum algorithms.
https://git.samba.org/?p=rsync.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 1f83b51d71855af0355b515867c1acb5f56da9d7
Author: Wayne Davison <wayned at samba.org>
Date: Sat May 7 15:42:20 2016 -0700
Improve the top-level section on include/exclude traversal.
This is my edit of some suggestions by Karl O. Pinc.
-----------------------------------------------------------------------
Summary of changes:
rsync.yo | 24 ++++++++++++++----------
1 file changed, 14 insertions(+), 10 deletions(-)
Changeset truncated at 500 lines:
diff --git a/rsync.yo b/rsync.yo
index 0ec5e55..bfe43b9 100644
--- a/rsync.yo
+++ b/rsync.yo
@@ -2830,16 +2830,20 @@ itemization(
)
Note that, when using the bf(--recursive) (bf(-r)) option (which is implied by
-bf(-a)), every subcomponent of every path is visited from the top down, so
-include/exclude patterns get applied recursively to each subcomponent's
-full name (e.g. to include "/foo/bar/baz" the subcomponents "/foo" and
-"/foo/bar" must not be excluded).
-The exclude patterns actually short-circuit the directory traversal stage
-when rsync finds the files to send. If a pattern excludes a particular
-parent directory, it can render a deeper include pattern ineffectual
-because rsync did not descend through that excluded section of the
-hierarchy. This is particularly important when using a trailing '*' rule.
-For instance, this won't work:
+bf(-a)), every subdir component of every path is visited left to right, with
+each directory having a chance for exclusion before its content. In this way
+include/exclude patterns are applied recursively to the pathname of each node
+in the filesystem's tree (those inside the transfer). The exclude patterns
+short-circuit the directory traversal stage as rsync finds the files to send.
+
+For instance, to include "/foo/bar/baz", the directories "/foo" and "/foo/bar"
+must not be excluded. Excluding one of those parent directories prevents the
+examination of its content, cutting off rsync's recursion into those paths and
+rendering the include for "/foo/bar/baz" ineffectual (since rsync can't match
+something it never sees in the cut-off section of the directory hierarchy).
+
+The concept path exclusion is particularly important when using a trailing '*'
+rule. For instance, this won't work:
quote(
tt(+ /some/path/this-file-will-not-be-found)nl()
--
The rsync repository.
More information about the rsync-cvs
mailing list