Preparing for release of 2.6.5
[rsync/rsync.git] / NEWS
diff --git a/NEWS b/NEWS
index 5373123..6ac8cf1 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,4 @@
-NEWS for rsync 2.6.5 (UNRELEASED)
+NEWS for rsync 2.6.5 (1 Jun 2005)
 Protocol: 29 (unchanged)
 Changes since 2.6.4:
 
@@ -10,8 +10,8 @@ Changes since 2.6.4:
       is now output as "\\".  Rsync also uses your locale setting, which
       can make it treat fewer high-bit characters as non-printable.
 
-    - If rsync received an empty file list when pulling files, it would
-      output an "nothing to do" message and exit with a 0 (success) exit
+    - If rsync received an empty file-list when pulling files, it would
+      output a "nothing to do" message and exit with a 0 (success) exit
       status, even if the remote rsync returned an error (it did not do
       this under the same conditions when pushing files).  This was changed
       to make the pulling behavior the same as the pushing behavior:  we
@@ -25,10 +25,11 @@ Changes since 2.6.4:
       rsyncd.conf file.
 
     - Fixed a bug in the transfer of a single file when -H is specified
-      that might have caused an infinite loop or perhaps a crash.
+      (rsync would either infinite loop or perhaps crash).
 
-    - Fixed a case where the generator might try to tweak the write
-      permissions of a read-only directory in list-only mode.
+    - Fixed a case where the generator might try (and fail) to tweak the
+      write-permissions of a read-only directory in list-only mode (this
+      only caused an annoying warning message).
 
     - If --compare-dest or --link-dest uses a locally-copied file as the
       basis for an updated version, log this better when --verbose or -i
@@ -44,8 +45,8 @@ Changes since 2.6.4:
       processing does not get left on the screen when it is followed by a
       newline.
 
-    - When --existing skips a directory with extra verbosity, don't refer
-      to it as a "file".
+    - When --existing skips a directory with extra verbosity, refer to it
+      as a "directory", not a "file".
 
     - When transferring a single file to a different-named file, any
       generator messages that are source-file related no longer refer to
@@ -60,7 +61,8 @@ Changes since 2.6.4:
 
     - When deleting files with the --one-file-system (-x) option set, rsync
       no longer tries to remove files from inside a mount-point on the
-      receiving side.
+      receiving side.  Also, we don't complain about being unable to remove
+      the mount-point dir.
 
     - Fixed a compatibility problem when using --cvs-ignore (-C) and
       sending files to an older rsync without using --delete.
@@ -71,16 +73,36 @@ Changes since 2.6.4:
     - Avoid a timeout in the generator when the sender/receiver aren't
       handling the generator's checksum output quickly enough.
 
-    - Fixed the ommission of some directories in the delete processing when
+    - Fixed the omission of some directories in the delete processing when
       --relative (-R) was combined with a source path that had a trailing
       slash.
 
+    - Fixed a case where rsync would erroneously delete some files and then
+      re-transfer them when the options --relative (-R) and --recursive
+      (-r) were both enabled (along with --delete) and a source path had a
+      trailing slash.
+
     - Make sure that --max-size doesn't affect a device or a symlink.
 
     - Make sure that a system with a really small MAXPATHLEN does not cause
       the buffers in readfd_unbuffered() to be too small to receive normal
       messages.  (This mainly affected Cygwin.)
 
+    - If a source pathname ends with a filename of "..", treat it as if
+      "../" had been specified (so that we don't copy files to the parent
+      dir of the destination).
+
+    - If --delete is combined with a file-listing rsync command (i.e. no
+      transfer is happening), avoid outputting a warning that we couldn't
+      delete anything.
+
+    - If --stats is specified with --delete-after, ensure that all the
+      "deleting" messages are output before the statistics.
+
+    - Improved one "if" in the deletion code that was only checking errno
+      for ENOTEMPTY when it should have also been checking for EEXIST (for
+      compatibility with OS variations).
+
   ENHANCEMENTS:
 
     - Added the --only-write-batch=FILE option that may be used (instead
@@ -94,20 +116,27 @@ Changes since 2.6.4:
       periodically flushes the output buffer so that the sender/receiver
       can get started on the files sooner rather than later.
 
+    - Improved the keep-alive code to handle a long silence between the
+      sender and the receiver that can occur when the sender is receiving
+      the checksum data for a large file.
+
     - Improved the auth-errors that are logged by the daemon to include
-      some information on why the authorization failed (wrong user,
-      password mismatch, etc.).  (The client-visible message is unchanged.)
+      some information on why the authorization failed:  wrong user,
+      password mismatch, etc.  (The client-visible message is unchanged!)
 
     - Improved the client's handling of an "@ERROR" from a daemon so that
       it does not complain about an unexpectedly closed socket (since we
       really did expect the socket to close).
 
     - If the daemon can't open the log-file specified in rsyncd.conf, fall
-      back to using syslog.  This is better than a (typically) totally
-      silent failure (since a daemon is not usually run with --no-detach).
+      back to using syslog and log an appropriate warning.  This is better
+      than what was typically a totally silent (and fatal) failure (since a
+      daemon is not usually run with the --no-detach option that was
+      necessary to see the error on stderr).
 
     - The man pages now consistently refer to an rsync daemon as a "daemon"
-      to distinguish it from a server in a non-daemon transfer.
+      instead of a "server" (to distinguish it from the server process in a
+      non-daemon transfer).
 
     - Made a small change to the rrsync script (restricted rsync -- in the
       support dir) to make a read-only server reject all --remove-* options
@@ -116,19 +145,25 @@ Changes since 2.6.4:
 
   INTERNAL:
 
-    - Rsync now calls setlocale(LC_CTYPE, "").
+    - Rsync now calls setlocale(LC_CTYPE, "").  This enables isprint() to
+      better discern which filename characters need to be escaped in
+      messages (which should result in fewer escaped characters in some
+      locales).
 
-    - Improved the naming of the logfile-open/-reopen/-close functions.
+    - Improved the naming of the log-file open/reopen/close functions.
 
-    - Removed some protocol compatibility code that was only needed to help
+    - Removed some protocol-compatibility code that was only needed to help
       someone running a pre-release of 2.6.4.
 
   BUILD CHANGES:
 
-    - Fixed a bug in the SUPPORT{,_HARD}_LINKS defines which prevented
+    - Added configure option "--disable-locale" to disable any use of
+      setlocale() in the binary.
+
+    - Fixed a bug in the SUPPORT{,_HARD}_LINKS #defines which prevented
       rsync from being built without symlink or hard-link support.
 
-    - You can use --disable-locale to turn off any use of setlocale().
+    - Only #define HAVE_REMSH if it is going to be set to 1.
 
     - Configure now disables the use of mkstemp() under HP-UX (since they
       refuse to fix its broken handling of large files).
@@ -137,6 +172,10 @@ Changes since 2.6.4:
       the code can use HAVE_LSEEK64 instead of inferring lseek64()'s
       presence based on the presence of the off64_t type.
 
+    - Configure no longer mentions the change in the default remote-shell
+      (from rsh to ssh) that occurred for the 2.6.0 release.
+
     - Some minor enhancements to the test scripts.
 
-    - Added a couple new diffs to the patches dir.
+    - Added a few new *.diff files to the patches dir, including a patch
+      that enables the optional copying of extended attributes.