| 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. Also, we don't complain about being unable to remove |
| 64 | the mount-point dir. |
| 65 | |
| 66 | - Fixed a compatibility problem when using --cvs-ignore (-C) and |
| 67 | sending files to an older rsync without using --delete. |
| 68 | |
| 69 | - Make sure that a "- !" or "+ !" include/exclude pattern does not |
| 70 | trigger the list-clearing action that is reserved for "!". |
| 71 | |
| 72 | - Avoid a timeout in the generator when the sender/receiver aren't |
| 73 | handling the generator's checksum output quickly enough. |
| 74 | |
| 75 | - Fixed the ommission of some directories in the delete processing when |
| 76 | --relative (-R) was combined with a source path that had a trailing |
| 77 | slash. |
| 78 | |
| 79 | - Fixed a case where rsync would erroneously delete some files and then |
| 80 | re-transfer them when the options --relative (-R) and --recursive |
| 81 | (-r) were both enabled (along with --delete) and a source path had a |
| 82 | trailing slash. |
| 83 | |
| 84 | - Make sure that --max-size doesn't affect a device or a symlink. |
| 85 | |
| 86 | - Make sure that a system with a really small MAXPATHLEN does not cause |
| 87 | the buffers in readfd_unbuffered() to be too small to receive normal |
| 88 | messages. (This mainly affected Cygwin.) |
| 89 | |
| 90 | - If a source filename ends with "..", treat it as if "../" had been |
| 91 | specified (so that we don't copy files to the parent dir of the |
| 92 | destination). |
| 93 | |
| 94 | - If --delete is combined with a file-listing rsync command (i.e. no |
| 95 | transfer is happening), avoid outputting a warning that we couldn't |
| 96 | delete anything. |
| 97 | |
| 98 | - If --stats is specified with --delete-after, ensure that all the |
| 99 | "deleting" messages are output before the statistics. |
| 100 | |
| 101 | - Improved one "if" in the deletion code that was only checking errno |
| 102 | for ENOTEMPTY when it should have also been checking for EEXIST. |
| 103 | |
| 104 | ENHANCEMENTS: |
| 105 | |
| 106 | - Added the --only-write-batch=FILE option that may be used (instead |
| 107 | of --write-batch=FILE) to create a batch file without doing any |
| 108 | actual updating of the destination. This allows you to divert all |
| 109 | the file-updating data away from a slow data link (as long as you |
| 110 | are pushing the data to the remote server when creating the batch). |
| 111 | |
| 112 | - When the generator is taking a long time to fill up its output buffer |
| 113 | (e.g. if the transferred files are few, small, or missing), it now |
| 114 | periodically flushes the output buffer so that the sender/receiver |
| 115 | can get started on the files sooner rather than later. |
| 116 | |
| 117 | - Improved the keep-alive code to handle a long silence between the |
| 118 | sender and the receiver that can occur when the sender is receiving |
| 119 | the checksum data for a large file. |
| 120 | |
| 121 | - Improved the auth-errors that are logged by the daemon to include |
| 122 | some information on why the authorization failed (wrong user, |
| 123 | password mismatch, etc.). (The client-visible message is unchanged.) |
| 124 | |
| 125 | - Improved the client's handling of an "@ERROR" from a daemon so that |
| 126 | it does not complain about an unexpectedly closed socket (since we |
| 127 | really did expect the socket to close). |
| 128 | |
| 129 | - If the daemon can't open the log-file specified in rsyncd.conf, fall |
| 130 | back to using syslog (and log an appropriate warning). This is |
| 131 | better than what was typically a totally silent failure (since a |
| 132 | daemon is not usually run with the --no-detach option that was |
| 133 | necessary to see the error on stderr). |
| 134 | |
| 135 | - The man pages now consistently refer to an rsync daemon as a "daemon" |
| 136 | to distinguish it from a server in a non-daemon transfer. |
| 137 | |
| 138 | - Made a small change to the rrsync script (restricted rsync -- in the |
| 139 | support dir) to make a read-only server reject all --remove-* options |
| 140 | when sending files (to future-proof it against the possibility of |
| 141 | other similar options being added at some point). |
| 142 | |
| 143 | INTERNAL: |
| 144 | |
| 145 | - Rsync now calls setlocale(LC_CTYPE, "") to enable isprint() to better |
| 146 | discern which filename characters need to be escaped in messages. |
| 147 | |
| 148 | - Improved the naming of the log-file open/reopen/close functions. |
| 149 | |
| 150 | - Removed some protocol compatibility code that was only needed to help |
| 151 | someone running a pre-release of 2.6.4. |
| 152 | |
| 153 | BUILD CHANGES: |
| 154 | |
| 155 | - Fixed a bug in the SUPPORT{,_HARD}_LINKS defines which prevented |
| 156 | rsync from being built without symlink or hard-link support. |
| 157 | |
| 158 | - You can use --disable-locale to turn off any use of setlocale(). |
| 159 | |
| 160 | - Configure now disables the use of mkstemp() under HP-UX (since they |
| 161 | refuse to fix its broken handling of large files). |
| 162 | |
| 163 | - Configure now explicitly checks for the lseek64() function so that |
| 164 | the code can use HAVE_LSEEK64 instead of inferring lseek64()'s |
| 165 | presence based on the presence of the off64_t type. |
| 166 | |
| 167 | - Some minor enhancements to the test scripts. |
| 168 | |
| 169 | - Added a few new diffs to the patches dir, including a patch that |
| 170 | enables the optional copying of extended attributes. |