| 1 | NEWS for rsync 2.6.5 (UNRELEASED) |
| 2 | Protocol: 29 (unchanged) |
| 3 | Changes since 2.6.4: |
| 4 | |
| 5 | OUTPUT CHANGES: |
| 6 | |
| 7 | - Non-printable chars in filenames are now output using backslash- |
| 8 | escaped characters rather than '?'s. Any non-printable character is |
| 9 | output using 3 digits of octal (e.g. "\n" -> "\012"), and a backslash |
| 10 | is now output as "\\". Rsync also uses your locale setting, which |
| 11 | can make it treat fewer high-bit characters as non-printable. |
| 12 | |
| 13 | - If rsync received an empty file list when pulling files, it would |
| 14 | output a "nothing to do" message and exit with a 0 (success) exit |
| 15 | status, even if the remote rsync returned an error (it did not do |
| 16 | this under the same conditions when pushing files). This was changed |
| 17 | to make the pulling behavior the same as the pushing behavior: we |
| 18 | now do the normal end-of-run outputting (depending on options) and |
| 19 | exit with the appropriate exit status. |
| 20 | |
| 21 | BUG FIXES: |
| 22 | |
| 23 | - A crash bug was fixed when a daemon had its "path" set to "/", did |
| 24 | not have chroot enabled, and used some anchored excludes in the |
| 25 | rsyncd.conf file. |
| 26 | |
| 27 | - Fixed a bug in the transfer of a single file when -H is specified |
| 28 | that might have caused an infinite loop or perhaps a crash. |
| 29 | |
| 30 | - Fixed a case where the generator might try to tweak the write |
| 31 | permissions of a read-only directory in list-only mode. |
| 32 | |
| 33 | - If --compare-dest or --link-dest uses a locally-copied file as the |
| 34 | basis for an updated version, log this better when --verbose or -i |
| 35 | is in effect. |
| 36 | |
| 37 | - Fixed the accidental disabling of --backup during the --delete-after |
| 38 | processing. |
| 39 | |
| 40 | - Restored the ability to use the --address option in client mode (in |
| 41 | addition to its use in daemon mode). |
| 42 | |
| 43 | - Make sure that some temporary progress information from the delete |
| 44 | processing does not get left on the screen when it is followed by a |
| 45 | newline. |
| 46 | |
| 47 | - When --existing skips a directory with extra verbosity, refer to it |
| 48 | as a "directory", not a "file". |
| 49 | |
| 50 | - When transferring a single file to a different-named file, any |
| 51 | generator messages that are source-file related no longer refer to |
| 52 | the file by the destination filename. |
| 53 | |
| 54 | - Fixed a bug where hard-linking a group of files might fail if the |
| 55 | generator hasn't created a needed destination directory yet. |
| 56 | |
| 57 | - Fixed a bug where a hard-linked group of files that is newly-linked |
| 58 | to a file in a --link-dest dir doesn't link the files from the rest |
| 59 | of the cluster. |
| 60 | |
| 61 | - When deleting files with the --one-file-system (-x) option set, rsync |
| 62 | no longer tries to remove files from inside a mount-point on the |
| 63 | receiving side. |
| 64 | |
| 65 | - Fixed a compatibility problem when using --cvs-ignore (-C) and |
| 66 | sending files to an older rsync without using --delete. |
| 67 | |
| 68 | - Make sure that a "- !" or "+ !" include/exclude pattern does not |
| 69 | trigger the list-clearing action that is reserved for "!". |
| 70 | |
| 71 | - Avoid a timeout in the generator when the sender/receiver aren't |
| 72 | handling the generator's checksum output quickly enough. |
| 73 | |
| 74 | - Fixed the ommission of some directories in the delete processing when |
| 75 | --relative (-R) was combined with a source path that had a trailing |
| 76 | slash. |
| 77 | |
| 78 | - Make sure that --max-size doesn't affect a device or a symlink. |
| 79 | |
| 80 | - Make sure that a system with a really small MAXPATHLEN does not cause |
| 81 | the buffers in readfd_unbuffered() to be too small to receive normal |
| 82 | messages. (This mainly affected Cygwin.) |
| 83 | |
| 84 | ENHANCEMENTS: |
| 85 | |
| 86 | - Added the --only-write-batch=FILE option that may be used (instead |
| 87 | of --write-batch=FILE) to create a batch file without doing any |
| 88 | actual updating of the destination. This allows you to divert all |
| 89 | the file-updating data away from a slow data link (as long as you |
| 90 | are pushing the data to the remote server when creating the batch). |
| 91 | |
| 92 | - When the generator is taking a long time to fill up its output buffer |
| 93 | (e.g. if the transferred files are few, small, or missing), it now |
| 94 | periodically flushes the output buffer so that the sender/receiver |
| 95 | can get started on the files sooner rather than later. |
| 96 | |
| 97 | - Improved the auth-errors that are logged by the daemon to include |
| 98 | some information on why the authorization failed (wrong user, |
| 99 | password mismatch, etc.). (The client-visible message is unchanged.) |
| 100 | |
| 101 | - Improved the client's handling of an "@ERROR" from a daemon so that |
| 102 | it does not complain about an unexpectedly closed socket (since we |
| 103 | really did expect the socket to close). |
| 104 | |
| 105 | - If the daemon can't open the log-file specified in rsyncd.conf, fall |
| 106 | back to using syslog (and log an appropriate warning). This is |
| 107 | better than what was typically a totally silent failure (since a |
| 108 | daemon is not usually run with the --no-detach option that was |
| 109 | necessary to see the error on stderr). |
| 110 | |
| 111 | - The man pages now consistently refer to an rsync daemon as a "daemon" |
| 112 | to distinguish it from a server in a non-daemon transfer. |
| 113 | |
| 114 | - Made a small change to the rrsync script (restricted rsync -- in the |
| 115 | support dir) to make a read-only server reject all --remove-* options |
| 116 | when sending files (to future-proof it against the possibility of |
| 117 | other similar options being added at some point). |
| 118 | |
| 119 | INTERNAL: |
| 120 | |
| 121 | - Rsync now calls setlocale(LC_CTYPE, "") to enable isprint() to better |
| 122 | discern which filename characters need to be escaped in messages. |
| 123 | |
| 124 | - Improved the naming of the log-file open/reopen/close functions. |
| 125 | |
| 126 | - Removed some protocol compatibility code that was only needed to help |
| 127 | someone running a pre-release of 2.6.4. |
| 128 | |
| 129 | BUILD CHANGES: |
| 130 | |
| 131 | - Fixed a bug in the SUPPORT{,_HARD}_LINKS defines which prevented |
| 132 | rsync from being built without symlink or hard-link support. |
| 133 | |
| 134 | - You can use --disable-locale to turn off any use of setlocale(). |
| 135 | |
| 136 | - Configure now disables the use of mkstemp() under HP-UX (since they |
| 137 | refuse to fix its broken handling of large files). |
| 138 | |
| 139 | - Configure now explicitly checks for the lseek64() function so that |
| 140 | the code can use HAVE_LSEEK64 instead of inferring lseek64()'s |
| 141 | presence based on the presence of the off64_t type. |
| 142 | |
| 143 | - Some minor enhancements to the test scripts. |
| 144 | |
| 145 | - Added a couple new diffs to the patches dir. |