are delimited by whitespace).
Finally, any file is ignored if it is in the same directory as a
-.cvsignore file and matches one of the patterns listed therein.
+.cvsignore file and matches one of the patterns listed therein. Unlike
+rsync's filter/exclude files, these patterns are split on whitespace.
See the bf(cvs(1)) manual for more information.
+If you're combining bf(-C) with your own bf(--filter) rules, you should
+note that these CVS excludes are appended at the end of your own rules,
+regardless of where the -C was placed on the command-line. This makes them
+a lower priority than any rules you specified explicitly. If you want to
+control where these CVS excludes get inserted into your filter rules, you
+should omit the bf(-C) as a command-line option and use a combination of
+bf(--filter=:C) and bf(--filter=-C) (either on your command-line or by
+putting the ":C" and "-C" rules into a filter file with your other rules).
+The first option turns on the per-directory scanning for the .cvsignore
+file. The second option does a one-time import of the CVS excludes
+mentioned above.
+
dit(bf(-f, --filter=RULE)) This option allows you to add rules to selectively
exclude certain files from the list of files to be transferred. This is
most useful in combination with a recursive transfer.
command-line. Filter rules have the following syntax:
quote(
-tt(x [RULE])nl()
-tt(xMODIFIERS [RULE])nl()
+tt(x [PATTERN_OR_FILE])nl()
+tt(xMODIFIERS [PATTERN_OR_FILE])nl()
)
The 'x' is a single-letter that specifies the kind of rule to create. It
-can have trailing modifiers, and is separated from the RULE by either a
+can have trailing modifiers, and is separated from its arg by either a
single space or an underscore (_). Here are the available rule prefixes:
quote(
bf(+) specifies an include pattern. nl()
bf(.) specifies a merge-file to read for more rules. nl()
bf(:) specifies a per-directory merge-file. nl()
-bf(!) clears the current include/exclude list (takes no RULE) nl()
+bf(!) clears the current include/exclude list (takes no arg) nl()
)
Note that the bf(--include)/bf(--exclude) command-line options do not allow the
manpagesection(INCLUDE/EXCLUDE PATTERN RULES)
You can include and exclude files by specifying patterns using the "+" and
-"-" filter rules (as introduced in the FILTER RULES section above). These
-rules specify a pattern that is matched against the names of the files
-that are going to be transferred. These patterns can take several forms:
+"-" filter rules (as introduced in the FILTER RULES section above).
+
+The include/exclude rules each specify a pattern that is matched against
+the names of the files that are going to be transferred. These patterns
+can take several forms:
itemize(
it() if the pattern starts with a / then it is anchored to a
space that separates the prefix from the rule is treated specially, so
"- foo + bar" is parsed as two rules (assuming that bf(-) or bf(+) was not
specified to turn off the parsing of prefixes).
+ it() You may also specify any of the modifiers for "+" or "-" to have the
+ rules that are read-in default to having that option set. For instance,
+ ".-/_.excl" would treat the contents of .excl as absolute-path excludes.
)
The following modifiers are accepted after a "+" or "-":
it() A "!" specifies that the include/exclude should take effect if
the pattern fails to match. For instance, "-! */" would exclude all
non-directories.
+ it() A bf(C) is used to indicate that all the global CVS-exclude rules
+ should be inserted as excludes in place of the "-C". No arg should
+ follow.
)
Per-directory rules are inherited in all subdirectories of the directory
Both of the above rsync commands are identical. Each one will merge all
the per-directory .cvsignore rules in the middle of the list rather than
at the end. This allows their dir-specific rules to supersede the rules
-that follow the :C instead of being subservient to all your rules. (The
-global rules taken from the $HOME/.cvsignore file and from $CVSIGNORE are
-not repositioned from their spot at the end of your rules, however -- feel
-free to manually include $HOME/.cvsignore elsewhere in your rules.)
+that follow the :C instead of being subservient to all your rules. To
+affect the other CVS exclude rules (i.e. the default list of exclusions,
+the contents of $HOME/.cvsignore, and the value of $CVSIGNORE) you should
+omit the bf(-C) command-line option and instead insert a "-C" rule into
+your filter rules; e.g. "--filter=-C".
manpagesection(LIST-CLEARING FILTER RULE)
When reading a batch file, rsync will force the value of certain options
to match the data in the batch file if you didn't set them to the same
as the batch-writing command. Other options can (and should) be changed.
-For instance
-bf(--write-batch) changes to bf(--read-batch), bf(--files-from) is dropped, and the
-bf(--filter)/bf(--include)/bf(--exclude) options are not needed unless one of the
-bf(--delete) options is specified without bf(--delete-excluded).
+For instance bf(--write-batch) changes to bf(--read-batch),
+bf(--files-from) is dropped, and the
+bf(--filter)/bf(--include)/bf(--exclude) options are not needed unless
+one of the bf(--delete) options is specified.
The code that creates the BATCH.sh file transforms any filter/include/exclude
options into a single list that is appended as a "here" document to the