Mention the latest bug-fix.
[rsync/rsync.git] / NEWS
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.