[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