- - Added the --prune-empty-dirs (-m) option that makes the receiving rsync
- discard empty chains of directories from the file-list. This makes it
- easier to selectively copy files from a source hierarchy and end up with
- just the directories needed to hold the resulting files.
-
- - If the --itemize-changes (-i) option is repeated, rsync now includes
- unchanged files in the itemized output (similar to -vv, but without all
- the other verbose messages that can get in the way). Of course, the
- client must be version 2.6.7 for this to work, but the remote rsync only
- needs to be 2.6.7 if you're pushing files.
-
- - Added the --specials option to tell rsync to copy non-device special
- files (which rsync now attempts even as a normal user). The --devices
- option now requests the copying of just devices (character and block).
- The -D option still requests both (e.g. --devices and --specials), -a
- still implies -D, and non-root users still get a silent downgrade that
- omits device copying.
-
- - Added the --super option to make the receiver always attempt super-user
- activities. This is useful for systems that allow things such as devices
- to be created or ownership to be set without being UID 0, and is also
- useful for someone who wants to ensure that errors will be output if the
- receiving rsync isn't being run as root.
-
- - Added the --sockopts option for those few who want to customize the TCP
- options used to contact a daemon rsync.
-
- - Added a way for the --temp-dir option to be combined with a partial-dir
- setting that lets rsync avoid non-atomic updates (for those times when
- --temp-dir is not being used because space is tight).
-
- - A new support script, files-to-excludes, will transform a list of files
- into a set of include/exclude directives that will copy those files.
-
- - A new option, --executability (-E) can be used to preserve just the
- execute bit on files, for those times when using the --perms option is
- not desired.
-
- - The daemon now logs each connection and also each module-list request
- that it receives.
-
- - New log-format options: %M (modtime), %U (uid), %G (gid), and %B
- (permission bits, e.g. "rwxr-xrwt").
-
- - The --dry-run option no longer forces the enabling of --verbose.
-
- - The --remove-sent-files option now does a better job of incrementally
- removing the sent files on the sending side (older versions tended to
- clump up all the removals at the end).
-
- - A daemon now supersedes its minimal SIGCHLD handler with the standard
- PID-remembering version after forking to handle the request. This
- ensures that the generator can get the child-exit status from the
- receiver.
-
- - Use of the --bwlimit option no longer interferes with the remote rsync
- sending error messages about invalid/refused options.
-
- - Rsync no longer returns a usage error when used with one local source arg
- and no destination: this now implies the --list-only option, just like
- the comparable situation with a remote source arg.
-
- - Added the --copy-dirlinks option, a more limited version of --copy-links.
-
- - Various documentation improvements, including: a better synopsis, some
- improved examples, a better discussion of the presence and absence of
- --perms (including how it interacts with the new --executability and
- --chmod options), an extended discussion of --temp-dir, an improved
- discussion of --partial-dir, a better description of rsync's pattern
- matching characters, an improved --no-implied-dirs section, and the
- documenting of what the --stats option outputs.
-
- - Various new and updated diffs in the patches dir, including: acls.diff,
- xattrs.diff, atimes.diff, detect-renamed.diff, and slp.diff.
-
- INTERNAL:
-
- - We now use sigaction() and sigprocmask() if possible, and fall back on
- signal() if not. Using sigprocmask() ensures that rsync enables all the
- signals that it needs, just in case it was started in a masked state.
-
- - Some buffer sizes were expanded a bit, particularly on systems where
- MAXPATHLEN is overly small (e.g. cygwin).
-
- - If io_printf() tries to format more data than fits in the buffer, exit
- with an error instead of transmitting a truncated buffer.
-
- - If a va_copy macro is defined, lib/snprintf.c will use it when defining
- the VA_COPY macro.
-
- - Reduced the amount of stack memory needed for each level of directory
- recursion by nearly MAXPATHLEN bytes.
-
- - The wildmatch function was extended to allow an array of strings to be
- supplied as the string to match. This allows the exclude code to do less
- string copying.
-
- - Got rid of the safe_fname() function (and all the myriad calls) and
- replaced it with a new function in the log.c code that filters all the
- output going to the terminal.
-
- - Unified the f_name() and the f_name_to() functions.
-
- - Improved the hash-table code the sender uses to handle checksums to make
- it use slightly less memory and run just a little faster.