Mention the output change for a mount-dir when -x is used.
[rsync/rsync.git] / NEWS
diff --git a/NEWS b/NEWS
index f49f189..21b2783 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -2,12 +2,31 @@ NEWS for rsync 2.6.5 (UNRELEASED)
 Protocol: 29 (unchanged)
 Changes since 2.6.4:
 
 Protocol: 29 (unchanged)
 Changes since 2.6.4:
 
+  OUTPUT CHANGES:
+
+    - Non-printable chars in filenames are now output using backslash-
+      escaped characters rather than '?'s.  Any non-printable character is
+      output using 3 digits of octal (e.g. "\n" -> "\012"), and a backslash
+      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 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
+      now do the normal end-of-run outputting (depending on options) and
+      exit with the appropriate exit status.
+
   BUG FIXES:
 
     - A crash bug was fixed when a daemon had its "path" set to "/", did
       not have chroot enabled, and used some anchored excludes in the
       rsyncd.conf file.
 
   BUG FIXES:
 
     - A crash bug was fixed when a daemon had its "path" set to "/", did
       not have chroot enabled, and used some anchored excludes in the
       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.
+
     - 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 to tweak the write
       permissions of a read-only directory in list-only mode.
 
@@ -25,18 +44,74 @@ Changes since 2.6.4:
       processing does not get left on the screen when it is followed by a
       newline.
 
       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
+      the file by the destination filename.
+
+    - Fixed a bug where hard-linking a group of files might fail if the
+      generator hasn't created a needed destination directory yet.
+
+    - Fixed a bug where a hard-linked group of files that is newly-linked
+      to a file in a --link-dest dir doesn't link the files from the rest
+      of the cluster.
+
+    - 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.  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.
+
+    - Make sure that a "- !" or "+ !" include/exclude pattern does not
+      trigger the list-clearing action that is reserved for "!".
+
+    - 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
+      --relative (-R) was combined with a source path that 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 filename ends with "..", 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.
 
   ENHANCEMENTS:
 
     - Added the --only-write-batch=FILE option that may be used (instead
       of --write-batch=FILE) to create a batch file without doing any
 
   ENHANCEMENTS:
 
     - Added the --only-write-batch=FILE option that may be used (instead
       of --write-batch=FILE) to create a batch file without doing any
-      actual updating of the destination.
+      actual updating of the destination.  This allows you to divert all
+      the file-updating data away from a slow data link (as long as you
+      are pushing the data to the remote server when creating the batch).
+
+    - When the generator is taking a long time to fill up its output buffer
+      (e.g. if the transferred files are few, small, or missing), it now
+      periodically flushes the output buffer so that the sender/receiver
+      can get started on the files sooner rather than later.
 
 
-    - Changed the outputting of "safe" filenames to use backslash-escaped
-      characters rather than '?'s.  Any non-printable character is output
-      using octal (e.g. "\n" -> "\012"), and backslash is output as "\\".
+    - 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,
 
     - Improved the auth-errors that are logged by the daemon to include
       some information on why the authorization failed (wrong user,
@@ -46,9 +121,29 @@ Changes since 2.6.4:
       it does not complain about an unexpectedly closed socket (since we
       really did expect the socket to close).
 
       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 (and log an appropriate warning).  This is
+      better than what was typically a totally silent 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.
+
+    - Made a small change to the rrsync script (restricted rsync -- in the
+      support dir) to make a read-only server reject all --remove-* options
+      when sending files (to future-proof it against the possibility of
+      other similar options being added at some point).
+
   INTERNAL:
 
   INTERNAL:
 
-    - Rsync now calls setlocale(LC_CTYPE, "").
+    - Rsync now calls setlocale(LC_CTYPE, "") to enable isprint() to better
+      discern which filename characters need to be escaped in messages.
+
+    - Improved the naming of the log-file open/reopen/close functions.
+
+    - Removed some protocol compatibility code that was only needed to help
+      someone running a pre-release of 2.6.4.
 
   BUILD CHANGES:
 
 
   BUILD CHANGES:
 
@@ -63,3 +158,8 @@ Changes since 2.6.4:
     - Configure now explicitly checks for the lseek64() function so that
       the code can use HAVE_LSEEK64 instead of inferring lseek64()'s
       presence based on the presence of the off64_t type.
     - Configure now explicitly checks for the lseek64() function so that
       the code can use HAVE_LSEEK64 instead of inferring lseek64()'s
       presence based on the presence of the off64_t type.
+
+    - Some minor enhancements to the test scripts.
+
+    - Added a few new diffs to the patches dir, including a patch that
+      enables the optional copying of extended attributes.