- - Added better checking of the checksum-header values that come over
- the socket.
-
- - Merged the various delete-file functions into a single function so
- that it is easier to maintain.
-
- - Improved the type of some variables (particularly blocksize vars) for
- consistency and proper size.
-
- - Got rid of the uint64 type (which we didn't need).
-
- - Use a slightly more compatible set of core #include directives.
-
- - Defined int32 in a way that ensures that the build dies if we can't
- find a variable with at least 32 bits.
-
- - The daemon's "read only" config item now sets an internal read_only
- variable that makes extra sure that no write/delete calls on the
- read-only side can succeed.
-
- PROTOCOL DIFFERENCES FOR VERSION 29:
-
- - If --inplace is specified, the generator sends an extra byte after
- each index integer indicating what kind of basis file is being used
- for the transfer (see the FNAMECMP_* defines).
-
- - The sending of exclude names is done using filter-rule syntax. This
- means that all names have a prefixed rule indicator, even excludes
- (which used to be sent as a bare pattern, when possible). The -C
- option will include the per-dir .cvsignore merge file in the list of
- filter rules so it is positioned correctly (unlike in some older
- transfer scenarios).
-
- - Rsync sorts the filename list in a different way: it sorts the
- subdir names after the non-subdir names for each dir's contents, and
- it always puts a dir's contents immediately after the dir's name in
- the list. (Previously an item named "foo.txt" would sort in between
- directory "foo/" and "foo/bar".)
-
- - When talking to a protocol 29 rsync daemon, a list-only request
- is able to note this before the options are sent over the wire, and
- the new --list-only option is enabled.
-
- - When the --stats bytes are sent over the wire (or stored in a batch),
- they now include two elapsed-time values: one for how long it took to
- build the file-list, and one for how long it took to send it over the
- wire (each expressed in thousandths of a second).
-
- - When --delete-excluded is specified with some filter rules (AKA
- excludes), a client sender will still initiate a send of the filter
- rules to the receiver, but it only includes those rules that are
- receiver-specific. Older protocols used to omit the sending of
- excludes in this situation (since there were no receiver-specific
- rules that survived --delete-excluded back then).