apply to the indicated (sender/receiver) side.
- Added the hide/show and protect/risk filter rules as an alternate
way to specify sender-/receiver-specific include/exclude rules.
- send_rules() now allows f_out to be -1 to indicate that the list
should be scanned but not sent.
- send_rules() now filters the list to remove any items that don't
apply to the current side (after sending the item to the other
side when f_out != -1).
- {send,recv}_filter_list() now transfer the list, even when the
receiver is the server and --delete-excluded was specified (the
exchanged list is appropriately filtered, of course).
- recv_filter_list() uses send_rules() to trim non-applicable rules
when we're a local-server (because we got our filter list without
send/recv calls when fork() duplicated it).
- Improved the debug info coming from add_rule().
- Changed add_filter() to parse_rule() and add_filter_file()
to parse_filter_file().
- Changed get_filter_tok() to parse_rule_tok().
- Made the mflags a uint32.
- Added an extra arg to get_rule_prefix() to indicate if we're
building the options for transmission or other purposes.
- The 'C' modifier can now be applied to a '-' rule, so it now
sets a new flag: MATCHFLG_CVS_IGNORE.
- The send_filter_list() and recv_filter_list() functions now handle
all the logic needed to do the right thing for -C (this used to be
in main.c).
add_filter(). This made for less flag conversion between various
MATCHFLG_* and XFLG_* values. It also made it easy to fix a bug
in the handling of no-prefix per-directory include/exclude files.
We also use the new XFLG_OLD_PREFIXES and MATCHFLGS_FROM_CONTAINER
defines.
- Added the "/" modifier to the -/+ filter rules to allow the
rule to specify an absolute path (sets MATCHFLG_ABS_PATH).
- Added the passing of the xflgags to filter_rule() and key off
XFLG_ANCHORED2ABS to prepend the current dirbuf value (was
keing off MATCHFLG_ABS_PATH).
- We no longer allow a '=' to separate the filter rule from its
arg (just a single space or an underscore).
- For triple verbose levels, mention when we look for a filter
file even if we don't find it (used to only mention the file
when it was found).
- A chrooted daemon process now includes /.cvsignore (inside the
chrooted hierarchy) instead of $HOME/.cvsignore.
for the --filter option. Some noteworthy changes:
- Added push_local_excludes() and pop_local_excludes() to implement
the changes needed as we go from directory to directory (this takes
the place of the old local_exclude_list var that only handled the
.cvsignore files). These per-dir excludes are linked into the same
exclude list as the global excludes.
- The exclude list is transferred as filter rules to an rsync that
talks protocol 29 or above. It limits itself to just include/exclude
rules for older rsyncs.
a "- " in front of any name that starts with a '+' or a '-' and would
otherwise be unprefixed (the old code only did this if the '+' or '-'
was followed by a space).
(used to be silently truncated).
- Include extra space in our exclude-reading buffers so that we
can fit a 2-char prefix and a trailing slash and still handle
a MAXPATHLEN name.