X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/5481e42cd6aa83ec9d3b296860d8cdd4bf6088d7..f65e6a127684da61c429eabafa702c9915474621:/NEWS diff --git a/NEWS b/NEWS index b25a9ca1..b5633fb2 100644 --- a/NEWS +++ b/NEWS @@ -8,11 +8,32 @@ Changes since 2.6.6: clumping them together with the 'D' for devices. The number of characters is also different (to remove an unused field). + - The way rsync escapes unreadable characters has changed. First, rsync + now has support for recognizing valid multibyte character sequences in + your current locale, allowing it to escape fewer characters than before + for a locale such as UTF-8. Second, it now uses an escape idiom of + "\#123", which is the literal string "\#" followed by exactly 3 octal + digits. Rsync no longer doubles a backslash character in a filename + (e.g. it used to output "foo\\bar" when copying "foo\bar") -- now it only + escapes a backslash that is followed by a hash-sign and 3 digits (0-9) + (e.g. it will output "foo\#134#789" when copying "foo\#789"). See also + the --8-bit-output (-8) option, mentioned below. + + Script writers: the local rsync is the one that outputs escaped names, + so if you need to support unescaping of filenames for older rsyncs, I'd + suggest that you parse the output of "rsync --version" and only use the + old unescaping rules for 2.6.5 and 2.6.6. + BUG FIXES: - Fixed a really old bug that caused --checksum (-c) to checksum all the files encountered during the delete scan (ouch). + - Fixed a potential hang in a remote generator: when the receiver gets a + read-error on the socket, it now signals the generator about this so that + the generator does not try to send any of the terminating error messages + to the client (avoiding a potential hang in some setups). + - Made hard-links work with symlinks and devices again. - If the sender gets an early EOF reading a source file, we propagate this @@ -84,8 +105,12 @@ Changes since 2.6.6: 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). - - The options --human-readable (-h) and --si change the output of the - --stats and the end-of-run summary to be easier to read. + - Added the --8-bit-output (-8) option, which tells rsync to avoid escaping + high-bit characters that it thinks are unreadable in the current locale. + + - The new option --human-readable (-h) changes the output of --progress, + --stats, and the end-of-run summary to be easier to read. If repeated, + the units become powers of 1024 instead of powers of 1000. - If lutimes() and/or lchmod() are around, use them to allow the preservation of attributes on symlinks. @@ -116,9 +141,9 @@ Changes since 2.6.6: - 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" daemon option to allow a module to specify - what permissions changes should be applied to all files copied to the - daemon. + - 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. @@ -164,12 +189,30 @@ Changes since 2.6.6: 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"). + + - The --dry-run option no longer forces the enabling of --verbose. + - Some minor documentation improvements. - Updated some diffs in the patches dir. 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). @@ -194,9 +237,20 @@ Changes since 2.6.6: DEVELOPER RELATED: + - The diffs in the patches dir now require "patch -p1