Remove bypassed checksums in --inplace to improve speed.
[rsync.git] / NEWS
diff --git a/NEWS b/NEWS
index 4b38c7c14e578c73c01881a5c835fe545bae4d4c..eec631d373dd9fe957919a591f268a3549267fa7 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,6 @@
 NEWS for rsync 3.1.0 (UNRELEASED)
 Protocol: 31 (changed)
-Changes since 3.0.4:
+Changes since 3.0.9:
 
   OUTPUT CHANGES:
 
@@ -9,9 +9,13 @@ Changes since 3.0.4:
       "log format" parameter and related command-line options (including
       --out-format) for a modifier that can be used to request digit-grouping
       or human-readable output in log escapes. (Note that log output is
-      unchanged by default.)  When some level of human-readable output is
-      enabled, the column width for the file size in the --list-only output
-      is increased.
+      unchanged by default.)
+
+    - The --list-only option is now affected by the --human-readable setting.
+      It will display digit groupings by default, and unit suffixes if higher
+      levels of readability are requested.  Also, the column width for the size
+      output has increased from 11 to 14 characters when human readability is
+      enabled.  Use --no-h to get the old-style output and column size.
 
     - The output of the --progress option has changed:  the string "xfer" was
       shortened to "xfr", and the string "to-check" was shortened to "to-chk",
@@ -23,24 +27,51 @@ Changes since 3.0.4:
       be increasing as new files are found.
 
     - Enhanced the --stats output: 1) to mention how many files were created
-      (protocol >= 28), 2) to mention how many files were deleted (new for
-      protocol 31, but only output when --delete is in effect), and 3) to
+      (protocol >= 28), 2) to mention how many files were deleted (a new line
+      for protocol 31, but only output when --delete is in effect), and 3) to
       follow the file-count, created-count, and deleted-count with a subcount
-      list broken down by type.
+      list that shows the counts by type.  The wording of the transferred count
+      has also changed so that it is clearer that it is only a count of regular
+      files.
 
   BUG FIXES:
 
-    - Changed the way --progress overwrites its prior output in order to make
-      it nearly impossible for the progress to get overwritten by an error.
+    - Fixed a bug in the iconv code when EINVAL or EILSEQ is returned with a
+      full output buffer.
 
     - Fixed some rare bugs in --iconv processing that might cause a multibyte
       character to get translated incorrectly.
 
+    - Fixed a bogus "vanished file" error if some files were specified with
+      "./" prefixes and others were not.
+
+    - Changed the way --progress overwrites its prior output in order to make
+      it nearly impossible for the progress to get overwritten by an error.
+
     - Improved the propagation of abnormal-exit error messages.  This should
       help the client side to receive errors from the server when it is exiting
       abnormally, and should also avoid dying with an "connection unexpectedly
       closed" exit when the closed connection is really expected.
 
+    - The sender now checks each file it plans to remove to ensure that it
+      hasn't changed from the first stat's info.  This helps to avoid losing
+      file data when the user is not using the option in a safe manner.
+
+    - Fixed a data-duplication bug in the compress option that made compression
+      less efficient.  This improves protocol 31 onward, while behaving in a
+      compatible (buggy) manner with older rsync protocols.
+
+    - When creating a temp-file, rsync is now a bit smarter about it dot-char
+      choices, which can fix a problem on OS X with names that start with "..".
+
+    - The reads that map_ptr() now does are aligned on 1K boundaries.  This
+      helps some filesystems and/or files that don't like unaligned reads.
+
+    - Fix an issue in the msleep() function if time jumps backwards.
+
+    - Fix daemon-server module-name splitting bug where an arg would get split
+      even if --protect-args was used.
+
   ENHANCEMENTS:
 
     - Added the --remote-option=OPT (-M OPT) command-line option that is useful
@@ -71,23 +102,39 @@ Changes since 3.0.4:
     - Added the "reverse lookup" parameter to the rsync daemon config file to
       allow reverse-DNS lookups to be disabled.
 
+    - Added a forward-DNS lookup for the daemon's hosts allow/deny config.  Can
+      be disabled via "forward lookup" parameter (defaults to enabled).
+
     - Added a way for more than one group to be specified in the daemon's
       config file, including a way to specify that you want all of the
       specified user's groups without having to name them.  Also changed the
       daemon to complain about an inability to set explicitly-specified uid/gid
       values, even when not run by a super-user.
 
+    - The daemon now tries to send the user the error messages from the
+      pre-xfer exec script when it fails.
+
+    - Improved the use of alt-dest options into an existing hierarchy of files:
+      If a match is found in an alt-dir, it takes precedence over an existing
+      file.  (We'll need to wait for a future version before attribute-changes
+      on otherwise unchanged files are safe when using an existing hierarchy.)
+
+    - Added per-user authorization options and group-authorization support to
+      the daemon's "auth users" parameter.
+
     - Added a way to reference environment variables in a daemon's config file
       (using %VAR% references).
 
     - When replacing a non-dir with a symlink/hard-link/device/special-file,
       the update should now be done in an atomic manner.
 
-    - Fixed a free of the wrong pointer in uncache_tmp_xattrs() (which only
-      sometimes affects an --xattr transfer when --backup is used).
+    - Avoid re-sending xattr info for hard-linked files w/the same xattrs
+      (protocol 31).
 
-    - When backing up a file, try to hard-link the file into place so that the
-      upcoming replacement of the destination file will be atomic.
+    - The backup code was improved to use better logic maintaining the backup
+      directory hierarchy.  Also, when a file is being backed up, rsync tries
+      to hard-link it into place so that the upcoming replacement of the
+      destination file will be atomic (for the normal, non-inplace logic).
 
     - Added the ability to synchronize nano-second modified times.
 
@@ -96,8 +143,40 @@ Changes since 3.0.4:
     - Added the checking of the RSYNC_PROTECT_ARGS environment variable to allow
       the default for the --protect-args command-line option to be overridden.
 
+    - Added the --preallocate command-line option.
+
+    - Allow --password-file=- to read the password from stdin (filename "-").
+
+    - Rsync now comes packaged with an rsync-ssl helper script that can be
+      used to contact a remote rsync daemon using a piped-stunnel command.
+      It also includes an stunnel config file to run the server side to
+      support ssl daemon connections.  See the packaging/lsb/rsync.spec
+      file for one way to package the resulting files.  (Suggestions for
+      how to make this even easier to install & use are welcomed.)
+
+    - Improved the speed of some --inplace updates when there are lots of
+      identical checksum blocks that end up being unsuable.
+
+    - Added the --outbuf=N|L|B option for chosing the output buffering.
+
+    - Repating the --fuzzy option now causes the code to look for fuzzy matches
+      inside alt-dest directories too.
+
+    - The --chmod option now supports numeric modes, e.g. --chmod=644,D755
+
     - Added some Solaris xattr code.
 
+    - Made an rsync daemon (the listening process) exit with a 0 status when
+      it was signalled to die.  This helps launchd.
+
+    - Improved the RSYNC_* environment variables for the pre-xfer exec script:
+      when a daemon is sent multiple request args, they are now joined into a
+      single return value (separated by spaces) so that the RSYNC_REQUEST
+      environment variable is accurate for any "pre-xfer exec".  The values in
+      RSYNC_ARG# vars are no longer truncated at the "." arg (prior to the
+      request dirs/files), so that all the requested values are also listed
+      (separately) in RSYNC_ARG# variables.
+
   EXTRAS:
 
     - Added an "instant-rsyncd" script to the support directory, which makes
@@ -107,6 +186,15 @@ Changes since 3.0.4:
       makes it easier to do user/group mapping in a local transfer based on
       passwd/group files from another machine.
 
+    - There's a new, improved version of the lsh script in the support dir:
+      it's written in perl and supports -u without resorting to using sudo
+      (when run as root).  The old shell version is now named lsh.sh.
+
+    - There is a helper script named rsync-slash-strip in the support directory
+      for anyone that wants to change the way rsync handles args with trailing
+      slashes.  (e.g. arg/ would get stripped to arg while arg/. would turn into
+      arg/).
+
   INTERNAL:
 
     - The I/O code was rewritten to be simpler and do bigger buffered reads
@@ -131,6 +219,17 @@ Changes since 3.0.4:
 
     - Added init_stat_x() function to avoid duplication of acl/xattr init code.
 
+    - The included zlib was upgraded from 1.2.3 to 1.2.8.
+
+    - Rsync can now be compiled to use an unmodified zlib library instead of
+      the tweaked one that is included with rsync.  This will eventually
+      become the default, at which point we'll start the countdown to removing
+      the included zlib.  Until then, feel free to configure using:
+
+       ./configure --with-included-zlib=no
+
   DEVELOPER RELATED:
 
     - Added more conditional debug output.
+
+    - Fixed some build issues for android and minix.