+ - 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:
+
+ - A 16-bit flag-word is transmitted after every file-list index. This
+ indicates what is changing between the sender and the receiver. The
+ generator now transmits an index and a flag-word to indicate when
+ dirs and symlinks have changed (only outputting local change messages
+ for older protocols).
+
+ - If --inplace is specified, the generator sends an extra byte after
+ the flag-word 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).
+
+ - A protocol-29 batch file includes a bit for the setting of the --dirs
+ option. Also, the shell script created by --write-batch will use the
+ --filter option instead of --exclude-from to capture any filter rules.
+