+ BUG FIXES:
+
+ - Restore the list-clearing behavior of "!" in a .cvsignore file (2.6.3
+ was only treating it as a special token in an rsync include/exclude
+ file).
+
+ - The combination of --verbose and --dry-run now mentions the full list
+ of changes that would be output without --dry-run.
+
+ - Avoid a mkdir warning when removing a directory in the destination
+ that already exists in the --backup-dir.
+
+ - An OS that has a binary mode for its files (such as cygwin) needed
+ setmode(fd, O_BINARY) called on the temp-file we opened with
+ mkstemp(). (Fix derived from the cygwin's 2.6.3 rsync package.)
+
+ - Fixed a potential hang when verbosity is high, the client side is
+ the sender, and the file-list is large.
+
+ - Fixed a potential protocol-corrupting bug where the generator could
+ merge a message from the receiver into the middle of a multiplexed
+ packet of data if only part of that data had been written out to the
+ socket when the message from the generator arrived.
+
+ - We now check if the OS doesn't support using mknod() for creating
+ FIFOs and sockets, and compile-in some compatibility code using
+ mkfifo() and socket() when necessary.
+
+ - Fixed an off-by-one error in the handling of --max-delete=N. Also,
+ if the --max-delete limit is exceeded during a run, we now output a
+ warning about this at the end of the run and exit with a new error
+ code (25).
+
+ - One place in the code wasn't checking if fork() failed.
+
+ - The "ignore nonreadable" daemon parameter used to erroneously affect
+ readable symlinks that pointed to a non-existent file.
+
+ - If the OS does not have lchown() and a chown() of a symlink will
+ affect the referent of a symlink (as it should), we no longer try
+ to set the user and group of a symlink.
+
+ - The generator now properly runs the hard-link loop and the dir-time
+ rewriting loop after we're sure that the redo phase is complete.
+
+ - When --backup was specified with --partial-dir=DIR, where DIR is a
+ relative path, the backup code was erroneously trying to backup a
+ file that was put into the partial-dir.
+
+ - If a file gets resent in a single transfer and the --backup option is
+ enabled along with --inplace, rsync no longer performs a duplicate
+ backup (it used to overwrite the first backup with the failed file).
+
+ - One call to flush_write_file() was not being checked for an error.
+
+ - The --no-relative option was not being sent from the client to a
+ server sender.
+
+ - If an rsync daemon specified "dont compress = ..." for a file and the
+ client tried to specify --compress, the libz code was not handling a
+ compression level of 0 properly. This could cause a transfer failure
+ if the block-size for a file was large enough (e.g. rsync might have
+ exited with an error for large files).
+
+ - Fixed a bug that would sometimes surface when using --compress and
+ sending a file with a block-size larger than 64K (either manually
+ specified, or computed due to the file being really large). Prior
+ versions of rsync would sometimes fail to decompress the data
+ properly, and thus the transferred file would fail its verification.
+
+ - If a daemon can't open the specified log file (i.e. syslog is not
+ being used), die without crashing. We also output an error about
+ the failure on stderr (which will only be seen if --no-detach was
+ specified) and exit with a new error code (6).
+
+ - A local transfer no longer duplicates all its include/exclude options
+ (since the forked process already has a copy of the exclude list,
+ there's no need to send them a set of duplicates).
+
+ - When --progress is specified, the output of items that the generator
+ is creating (e.g. dirs, symlinks) is now integrated into the progress
+ output without overlapping it. (Requires protocol 29.)
+
+ - When --timeout is specified, lulls that occur in the transfer while
+ the generator is doing work that does not generate socket traffic
+ (looking for changed files, deleting files, doing directory-time
+ touch-ups, etc.) will cause a new keep-alive packet to be sent that
+ should keep the transfer going as long as the generator continues to
+ make progress. (Requires protocol 29.)
+
+ - The stat size of a device is not added to the total file size of the
+ items in the transfer (the size might be undefined on some OSes).
+
+ - Fixed a problem with refused-option messages sometimes not making it
+ back to the client side when a remote --files-from was in effect and
+ the daemon was the receiver.
+
+ - The --compare-dest option was not updating a file that differred in
+ (the preserved) attributes from the version in the compare-dest DIR.
+
+ - When rsync is copying files into a write-protected directory, fixed
+ the change-report output for the directory so that we don't report
+ an identical directory as changed.
+
+ ENHANCEMENTS:
+
+ - Rsync now supports popt's option aliases, which means that you can
+ use /etc/popt and/or ~/.popt to create your own option aliases.
+
+ - Added the --delete-during (--del) option which will delete files
+ from the receiving side incrementally as each directory in the
+ transfer is being processed. This makes it more efficient than the
+ default, before-the-transfer behavior, which is now also available as
+ --delete-before (and is still the default --delete-WHEN option that
+ will be chosen if --delete or --delete-excluded is specified without
+ a --delete-WHEN choice). All the --del* options infer --delete, so
+ an rsync daemon that refuses "delete" will still refuse to allow any
+ file-deleting options (including the new --remove-sent-files option).
+
+ - All the --delete-WHEN options are now more memory efficient:
+ Previously an duplicate set of file-list objects was created on the
+ receiving side for the entire destination hierarchy. The new
+ algorithm only creates one directory of objects at a time (for files
+ inside the transfer).
+
+ - Added the --copy-dest option, which works like --link-dest except
+ that it locally copies identical files instead of hard-linking them.
+
+ - Added support for specifying multiple --compare-dest, --copy-dest, or
+ --link-dest options, but only of a single type. (Promoted from the
+ patches dir and enhanced.) (Requires protocol 29.)
+
+ - Added the --max-size option. (Promoted from the patches dir.)
+
+ - The daemon-mode options are now separated from the normal rsync
+ options so that they can't be mixed together. This makes it
+ impossible to start a daemon that has improper default option values
+ (which could cause problems when a client connects, such as hanging
+ or crashing).
+
+ - The --bwlimit option may now be used in combination with --daemon
+ to specify both a default value for the daemon side and a value
+ that cannot be exceeded by a user-specified --bwlimit option.