- 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.
items and/or ignore +/- prefixes.
- add_exclude_file() changed to take the same flags as add_exclude().
- add_exclude_line() was removed since add_exclude() can now do its job.
- make_exclude() now takes a size-limited string without a +/- prefix.
- add_cvs_excludes() was changed to word-split the items that come from
a .cvsignore file, and to ignore all +/- prefixes in all the ignore
sources. Since CVS doesn't check if its ignore items are directories,
the dir-names (e.g. SCCS, CVS, etc.) no longer have a trailing slash
(making our excludes match CVS's ignores more exactly).
an extra "- " or "+ " parsed off the start of the name (i.e. we have to
quote excluded names that start with those strings with an extra "- "
at the start).