- - 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.
-
- 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.
-