struct exclude_list_struct {
--- orig/rsync.yo 2005-01-20 19:47:08
-+++ rsync.yo 2005-01-17 07:02:43
++++ rsync.yo 2005-01-21 19:56:38
@@ -361,6 +361,9 @@ verb(
-P equivalent to --partial --progress
-z, --compress compress file data
rule for this directory exclusion somewhere higher up in the list so that
it has a high enough priority to be effective (e.g., if your rules specify
a trailing --exclude=* rule, the auto-added rule will be ineffective).
-@@ -1110,30 +1141,320 @@ page describing the options available fo
+@@ -1110,30 +1141,322 @@ page describing the options available fo
enddit()
-manpagesection(EXCLUDE PATTERNS)
-+manpagesection(FILTER RULES)
-
+-
-The exclude and include patterns specified to rsync allow for flexible
-selection of which files to transfer and which files to skip.
--
++manpagesection(FILTER RULES)
+
-Rsync builds an ordered list of include/exclude options as specified on
-the command line. Rsync checks each file and directory
-name against each exclude/include pattern in turn. The first matching
+
+As the list of files/directories to transfer is built, rsync checks each
+name to be transferred against the list of include/exclude patterns in
-+turn, and t first matching pattern is acted on: if it is an exclude
++turn, and the first matching pattern is acted on: if it is an exclude
+pattern, then that file is skipped; if it is an include pattern then that
+filename is not skipped; if no matching pattern is found, then the
filename is not skipped.
+
+itemize(
+ it() x RULE
-+ it() x=RULE
+ it() xMODIFIERS RULE
-+ it() xMODIFIERS=RULE
+ it() !
+)
+
+The 'x' is a single-letter that specifies the kind of rule to create. It
-+can have trailing options, and is separated from the RULE by one of the
++can have trailing modifiers, and is separated from the RULE by one of the
+following characters: a single space, an equal-sign (=), or an underscore
+(_). Here are the available rule prefixes:
+
+ ! clears the current include/exclude list
+)
+
-+Note that the include/exclude command-line options do not allow the full
-+range of rule parsing as described above -- they only allow the
++Note that the --include/--exclude command-line options do not allow the
++full range of rule parsing as described above -- they only allow the
+specification of include/exclude patterns and the "!" token (not to
+mention the comment lines when reading rules from a file). If a pattern
+does not begin with "- " (dash, space) or "+ " (plus, space), then the
+the command-line, use the merge-file syntax of the --filter option, or
+the --include-from/--exclude-from options.
+
++When rules are being read from a file, empty lines are ignored, as are
++comment lines that start with a "#".
++
+manpagesection(INCLUDE/EXCLUDE PATTERN RULES)
+
+You can include and exclude files by specifing patterns using the "+" and
+ it() if the pattern contains a / (not counting a trailing /) or a "**"
+ then it is matched against the full pathname, including any leading
+ directories. If the pattern doesn't contain a / or a "**", then it is
-+ matched only against the final component of the filename. Again,
-+ remember that the algorithm is applied recursively so "full filename" can
-+ actually be any portion of a path below the starting directory.
++ matched only against the final component of the filename.
++ (Remember that the algorithm is applied recursively so "full filename"
++ can actually be any portion of a path fomr the starting directory on
++ down.)
+
+)
+
Let's say that we want to match two source files, one with an absolute
path of "/home/me/foo/bar", and one with a path of "/home/you/bar/baz".
-@@ -1165,115 +1486,59 @@ verb(
+@@ -1165,115 +1488,59 @@ verb(
Target file: /dest/you/bar/baz
)
-
- it() the double asterisk pattern "**" will match slashes while a
- single asterisk pattern "*" will stop at slashes.
--
++verb(
++ rsync -av --filter=': .excl' --exclude=.excl host:src/dir /dest
++ rsync -av --filter=':e .excl' host:src/dir /dest
++)
+
- it() if the pattern contains a / (not counting a trailing /) or a "**"
- then it is matched against the full filename, including any leading
- directory. If the pattern doesn't contain a / or a "**", then it is
- matched only against the final component of the filename. Again,
- remember that the algorithm is applied recursively so "full filename" can
- actually be any portion of a path below the starting directory.
-+verb(
-+ rsync -av --filter=': .excl' --exclude=.excl host:src/dir /dest
-+ rsync -av --filter=':e .excl' host:src/dir /dest
-+)
-
+-
- it() if the pattern starts with "+ " (a plus followed by a space)
- then it is always considered an include pattern, even if specified as
- part of an exclude option. The prefix is discarded before matching.
)
manpagesection(BATCH MODE)
-@@ -1442,7 +1707,7 @@ it. The most common cause is incorrectly
+@@ -1442,7 +1709,7 @@ it. The most common cause is incorrectly
scripts (such as .cshrc or .profile) that contain output statements
for non-interactive logins.