+ - Added the --partial-dir=DIR option that lets you specify where to
+ (temporarily) put a partially transferred file (instead of over-
+ writing the destination file). E.g. --partial-dir=.rsync-partial
+
+ - Added --keep-dirlinks (-K), which allows you to symlink a directory
+ onto another partition on the receiving side and have rsync treat it
+ as matching a normal directory from the sender.
+
+ - Added the --inplace option that tells rsync to write each destination
+ file without using a temporary file. The matching of existing data
+ in the destination file can be severely limited by this, but there
+ are also cases where this is more efficient (such as appending data).
+ Use only when needed (see the man page for more details).
+
+ - Added the "write only" option for the daemon's config file.
+
+ - Added long-option names for -4 and -6 (namely --ipv4 and --ipv6)
+ and documented all these options in the man page.
+
+ - Improved the handling of the --bwlimit option so that it's less
+ bursty, more accurate, and works properly over a larger range of
+ values.
+
+ - The rsync daemon-over-ssh code now looks for SSH_CONNECTION and
+ SSH2_CLIENT in addition to SSH_CLIENT to figure out the IP address.
+
+ - Added the --checksum-seed=N option for advanced users.
+
+ - Batch writing/reading has a brand-new implementation that is simpler,
+ fixes a few weird problems with the old code (such as no longer
+ sprinkling the batch files into different dirs or even onto different
+ systems), and is much less intrusive into the code (making it easier
+ to maintain for the future). The new code generates just one data
+ file instead of three, which makes it possible to read the batch via
+ stdin. Also, the old requirement of using the same fixed checksum-
+ seed for all batch processing has been removed.
+
+ - If an rsync daemon has a module set with "list = no" (which hides its
+ presence in the list of available modules), a user that fails to
+ authenticate gets the same "unknown module" error that they would get
+ if the module were actually unknown (while still logging the real
+ error to the daemon's log file). This prevents fishing for module
+ names.
+
+ - The daemon's "refuse options" config item now allows you to match
+ option names using wildcards and/or the single-letter option names.
+
+ - The finished file now gets its permissions and modified-time updated
+ before it gets movied into place.
+
+ INTERNAL:
+
+ - Some cleanup in the exclude code has saved some per-exclude memory
+ and made the code easier to maintain.
+
+ - Improved the argv-overflow checking for a remote command that has
+ a lot of args.
+
+ - Use rsyserr() in the various places that were still calling
+ rprintf() with strerror() as an arg.
+
+ - If an rsync daemon is listening on multiple sockets (to handle both
+ IPv4 and IPv6 to a single port), we now close all the unneeded file
+ handles after we accept a connection (we used to close just one of
+ them).
+
+ - Optimized the handling of larger block sizes (rsync used to slow to
+ a crawl if the block size got too large). Also cap the block size.
+
+ - Optimized away a loop in hash_search().
+
+ BUILD CHANGES:
+
+ - Added a "gen" target to rebuild most of the generated files,
+ including configure, config.h.in, the man pages, and proto.h.
+
+ - If "make proto" doesn't find some changes in the prototypes, the
+ proto.h file is left untouched (its time-stamp used to always be
+ updated).
+
+ - The variable $STRIP (that is optionally set by the install-strip
+ target's rule) was changed to $INSTALL_STRIP because some systems
+ have $STRIP set in the environment.
+
+ - Fixed a build problem when SUPPORT_HARD_LINKS isn't defined.
+
+ DEVELOPER RELATED:
+
+ - The scripts in the testsuite dir were cleaned up a bit.
+
+ - Some new diffs were added to the patches dir, and some accepted
+ ones were removed.