- Improve function name: parse_rule -> parse_filter_str (to make the
similarity with parse_filter_file clearer, and better indicate that
it can parse multiple rules when FILTRULE_WORD_SPLIT is specified).
- In preparation for rule prefixes containing information beyond the
rflags, change the code to pass around a full "template" filter_rule
instead of just rflags. Callers of parse_filter_{str,file} that want
to specify only rflags can use rule_template(rflags) .
- Remove the MODIFIERS_* strings and instead hand-code the condition
under which each modifier is valid. This should make it easier to
see that the conditions are correct.
- Tighten up default modifiers on merge rules:
- Disallow "!" because it isn't useful.
- If the merge rule specifies a side via "s" or "r", the rules in the
file cannot also specify a side via "s", "r", "hide", etc.
[Patch was changed by Wayne a bit prior to application.]
- If a symlink/device/special-file changes its value without any
attribute changes, the itemized event no longer gets dropped.
- We put a 'c' into the checksum/change field now to indicate when
a symlink/device/special-file changes its value without changing
its type. This lets us properly interpret the --copy-links output
to know which items are getting copied without changes and which
are getting created with new content.
- Fixed the 'T' itemized output for a symlink when rsync tries to
set the right time but fails due to lack of OS/disk support.
tell the client if the server can set the times on a symlink (both
the server->client byte and the client->server use of -e). Make use
of this info to allow the proper output of the 't' flag when rsync
can set the time on a symlink (and we're talking protocol >= 30).
Added output of "[no] symtimes" info in the --version message.
Fixed the itemize.test so that it works when rsync believes that it
can set the time of a symlink, but it can't really do it.
call it when the server is in setup_protocol(). The function sets
allow_inc_recurse to 0 if some options won't allow us to support
an incremental-recursive transfer.
- The server now checks for an 'i' in the -e option from the client
and zeros out allow_inc_recurse if not found.
- The server reports its inc_recurse determination back to the client.
- The client sets inc_recurse based on the value it gets from the server.
is going to run in inc_recurse mode or not.
- Verify that the options we received (as a server or as a batch-reader)
are compatible with the requested inc_recurse mode.
0 when a protocol goes final, and non-zero for an intermediary CVS
version of a protocol that is in flux. If we find that we're talking
to a CVS version with a different sub-protocol #, we automatically
drop back to the prior protocol that the sides have in common.