- - 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 on the receiving side incrementally as each directory in the
- transfer is being processed (which makes it more efficient than the
- default, before-the-transfer behavior of --delete). Note that the
- --del option is implemented as an internally-defined popt alias, so
- an rsync daemon that refuses "delete" (which, for safety's sake,
- really matches "delete*") will still refuse all delete options.
-
- - Added the --copy-dest option, which works like --link-dest except
- that it includes copies of identical files.
-
- - 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.)
-
- - Added the --max-size option. (Promoted from the patches dir.)
-
- - The daemon-mode options were separated from the normal rsync options
- so that they can't be mixed together. This makes it impossible to
- start a daemon that had improper default option values that could
- cause problems (such as a hang or an abort) when a client connects.
-
- - 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.
-
- - Added the "port" parameter to the rsyncd.conf file. (Promoted from
- the patches dir.) Also added "address".
-
- - In _exit_cleanup(): when we are exiting with a partially-received
- file, we now flush any data in the write-cache before closing the
- partial file.
-
- - The --inplace support was enhanced to work with --compare-dest,
- --link-dest, and (the new) --copy-dest options.
-
- - Added the --dirs (-d) option for an easier way to copy directories
- without recursion.
-
- - Added the --list-only option which is mainly a way for the client to
- put the server into listing mode without needing to resort to any
- option kluges (e.g. the age-old use of "-r --exclude="/*/*" for a
- non-recursive listing). This option is used automatically when a
- modern rsync speaks to a modern daemon, but may also be specified
- manually if you want to force the use of the --list-only option over
- a remote-shell connection.
-
- - Added the --omit-dir-times (-O) option which will avoid updating the
- modified time for directories when --times was specified. This
- option will avoid an extra pass through the file-list at the end of
- the transfer (to tweak all the directory times), which can result in
- an appreciable speedup for a really large transfer.
-
- - Added the --filter (-f) option and its helper option, -F. Filter
- rules are an extension to the existing include/exclude handling
- that also supports nested filter files as well as per-directory
- filter files (like .cvsignore, but with full filter-rule parsing).
- This new option was chosen in order to ensure that all existing
- include/exclude processing remained 100% compatible with older
- versions.
-
- - Added the --delay-updates option that puts all updated files into
- a temporary directory (by default ".~tmp~", but settable via the
- --partial-dir=DIR option) until the end of the transfer. This
- makes the updates a little more atomic for a large transfer.
-
- - If rsync is put into the background, any output from --progress is
- reduced.
-
- SUPPORT FILES:
-
- - Added support/atomic-rsync -- a perl script that will transfer some
- files using rsync, and then move the updated files into place all at
- once at the end of the transfer. Only works when pulling, and uses
- --link-dest and a parallel hierarchy of files to effect its update.
-
- - Added support/mnt-excl that takes the /proc/mounts file and
- translates it into a set of excludes that will exclude all mount
- points (even mapped mounts to the same disk). The excludes are made
- relative to the specified source dir and properly anchored.
-
- - Added support/savetransfer.c -- a C program that can make a copy of
- all the data that flows over the wire. This lets you test for data
- corruption (by saving the data on both the sending side and the
- receiving side) or provides a way to help debug a protocol error.
-
- - Added support/rrsync -- my version of Joe Smith's restricted rsync
- perl script. This helps to ensure that only certain rsync commands
- can be run by an ssh invocation.
+ - Added the --specials option to tell rsync to copy special files (and does
+ not require root). The --devices option now affects just character and
+ block devices (which now matches the documentation). The -D option still
+ requests both --devices and --specials, and -a still implies -D.
+
+ - Added the --append option that makes rsync append data onto files that
+ are longer on the source than the destination (this includes new files).
+
+ - Added the --min-size=SIZE option to exclude small files from the
+ transfer.
+
+ - Added the --compress-level option to allow you to set how aggressive
+ rsync's compression should be (this option implies --compress).
+
+ - Enhanced the parsing of the SIZE value for --min-size and --max-size to
+ allow easy entry of multiples of 1000 (instead of just multiples of 1024)
+ and off-by-one values too (e.g. --max-size=8mb-1).
+
+ - Added the --8-bit (-8) option, which tells rsync to avoid escaping high-
+ bit characters that it thinks are unreadable in the current locale.
+
+ - The new options --human-readable (-h) and --si change the output of the
+ --stats and the end-of-run summary to be easier to read.
+
+ - If lutimes() and/or lchmod() are around, use them to allow the
+ preservation of attributes on symlinks.
+
+ - The --link-dest option now affects symlinks and devices (when possible).
+
+ - Improved the output of hard-linked and copied files when using
+ --link-dest, --copy-dest, or --compare-dest.
+
+ - Added two config items to the rsyncd.conf parsing: "pre-xfer exec" and
+ "post-xfer exec". These allow a command to be specified on a per-module
+ basis that will be run before and/or after a daemon-mode transfer. (See
+ the manpage for a list of the environment variables that are set with
+ information about the transfer.)
+
+ - When using the --relative option, you can now insert a dot dir in
+ the source path to indicate where the replication of the source dirs
+ should start. For example, if you specify a source path of
+ rsync://host/module/foo/bar/./baz/dir with -R, rsync will now only
+ replicate the "baz/dir" part of the source path (note: a trailing
+ dot dir is unaffected unless it also has a trailing slash).
+
+ - Added some new --no-FOO options that make it easier to override unwanted
+ implied or default options. For example, "-a --no-o" (aka "--archive
+ --no-owner") can be used to turn off the preservation of file ownership
+ that is implied by -a.
+
+ - Added the --chmod=MODE option that allows the destination permissions to
+ be changed from the source permissions. E.g. --chmod=g+w,o-rwx
+
+ - Added the "incoming chmod" and "outgoing chmod" daemon options that allow
+ a module to specify what permissions changes should be applied to all
+ files copied to and from the daemon.
+
+ - Allow the --temp-dir option to be specified when starting a daemon, which
+ sets the default temporary directory for incoming files.
+
+ - If --delete is combined with --dirs without --recursive, rsync will now
+ delete in any directory whose content is being synchronized.
+
+ - If --backup is combined with --delete without --backup-dir (and without
+ --delete-excluded), we add a "protect" filter-rule to ensure that files
+ with the backup suffix are not deleted.
+
+ - The file-count stats that are output by --progress were improved to
+ better indicate what the numbers mean. For instance, the output:
+ "(xfer#5, to-check=8383/9999)" indicates that this was the fifth file
+ to be transferred, and we still need to check 8383 more files out of
+ a total of 9999.
+
+ - The include/exclude code now allows a dir/*** directive (with 3 trailing
+ stars) to match both the dir itself as well as all the content below the
+ dir (dir/** would not match the dir).
+
+ - 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 --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 module-list request it receives.
+
+ - New log-format options: %M (modtime), %U (uid), %G (gid), and %B
+ (permission bits, e.g. "rwxr-xrwt").
+
+ - Some minor documentation improvements.
+
+ - Updated some diffs in the patches dir.