- Added a function to get/set all the access-bit values with a single
[rsync/rsync.git] / NEWS
diff --git a/NEWS b/NEWS
index 1a93c73..48484fb 100644 (file)
--- a/NEWS
+++ b/NEWS
-rsync changes since last release
+NEWS for rsync 3.0.0 (UNRELEASED)
+Protocol: 30 (changed)
+Changes since 2.6.9:
 
-  ENHANCEMENTS:
-
-    * The --delete-after option now implies --delete.  (Wayne Davison)
-
-    * The --suffix option can now be used with --backup-dir.  (Michael
-      Zimmerman)
-
-    * Combining "::" syntax with the -rsh/-e option now uses the
-      specified remote-shell as a transport to talk to a (newly-spawned)
-      server-daemon.  This allows someone to use daemon features, such
-      as modules, over a secure protocol, such as ssh.  (JD Paul)
-
-    * The rsync:// syntax for daemon connections is now accepted in the
-      destination field.
-
-    * If the file name given to --include-from or --exclude-from is "-",
-      rsync will read from standard input.  (J.W. Schultz)
-
-    * New option --link-dest which is like --compare-dest except that
-      unchanged files are hard-linked in to the destination directory.
-      (J.W. Schultz)
-
-    * Don't report an error if an excluded file disappears during an
-      rsync run.  (Eugene Chupriyanov and Bo Kersey)
-
-    * Added .svn to --cvs-exclude list to support subversion.  (Jon
-      Middleton)
+  BUG FIXES:
 
-    * Properly support IPv6 addresses in the rsyncd.conf "hosts allow"
-      and "hosts deny" fields.  (Hideaki Yoshifuji)
+    - Fixed the output of -ii when combined with one of the --*-dest options:
+      it now itemizes all the items, not just the changed ones.
 
-    * Changed exclude file handling to permit DOS or MAC style line
-      terminations.  (J.W. Schultz)
+    - Made the output of all file types consistent when using a --*-dest
+      option.  Prior versions used to output too many creation events for
+      matching items.
 
-    * Ignore errors from chmod when -p/-a/--preserve-perms is not set.
-      (Dave Dykstra)
+    - The code that waits for a child pid now handles being interrupted by a
+      signal.  This fixes a problem with the pre-xfer exec function not being
+      able to get the exit status from the script.
 
-  BUG FIXES:
-  
-    * Fix "forward name lookup failed" errors on AIX 4.3.3.  (John
-      L. Allen, Martin Pool)
+    - A negated filter rule now sends the negation option when sending the
+      filter rules.
 
-    * Generate each file's rolling-checksum data as we send it, not
-      in a separate (memory-eating) pass before hand.  This prevents
-      timeout errors on really large files. (Stefan Nehlsen)
+    - Fixed a problem with the --out-format (aka --log-format) option:  it
+      would output superfluous directory information for a non-daemon rsync.
 
-    * Fix compilation on Tru64.  (Albert Chin, Zoong Pham)
+    - Fixed a problem with -vv (double --verbose) and --stats when "pushing"
+      files (which includes local copies).  Version 2.6.9 would complete the
+      copy, but exit with an error when the receiver output its memory stats.
 
-    * Better handling of some client-server errors.  (Martin Pool)
+    - If --password-file is used on a non-daemon transfer, rsync now complains
+      and exits.  This should help users figure out that they can't use this
+      option to control a remote shell's password prompt.
 
-    * Fixed a crash that would occur when sending a list of files that
-      contains a duplicate name (if it sorts to the end of the file
-      list) and using --delete.  (Wayne Davison)
+    - Make sure that directory permissions of a newly-created destination
+      directory are handled right when --perms is left off.
 
-    * Fixed the file-name duplicate-removal code when dealing with multiple
-      dups in a row. (Wayne Davison)
+  ENHANCEMENTS:
 
-    * Fixed a bug that caused rsync to lose the exit status of its child
-      processes and sometimes return an exit code of 0 instead of showing
-      an error.  (David R. Staples, Dave Dykstra)
+    - A new incremental-recursion algorithm is now used when rsync is talking
+      to another 3.0.0 version.  This starts the transfer going more quickly
+      (before all the files have been found), and requires much less memory.
+      See the --recursive option in the manpage for some restrictions.
+
+    - The default --delete algorithm is now --delete-during when talking to a
+      3.x rsync.  This is a faster scan than using --delete-before (which is
+      the default when talking to older rsync versions), and is compatible with
+      the new incremental recursion mode.
+
+    - Added the --delete-delay option, which is a more efficient way to delete
+      files at the end of the transfer without needing a separate delete pass.
+
+    - Added the --acls (-A) option to preserve Access Control Lists.  This is
+      an improved version of the prior patch that was available.  (If you need
+      to have backward compatibility with old, patched versions, the new
+      acls.diff patch that will add that.)
+
+    - Added the --xattrs (-X) option to preserver extended attributes.  This is
+      an improved version of the prior patch that was available.  (If you need
+      to have backward compatibility with old, patched versions, the new
+      xattrs.diff patch that will add that.)
+
+    - Added the --fake-super option that allows a non-super user to preserve
+      all attributes of a file by using a special extended-attribute idiom.
+      There is also an analogous "fake super" option for an rsync daemon.
+
+    - Added the --iconv option, which allows rsync to convert filenames from
+      one character-set to another during the transfer.  The default is to make
+      this feature available as long as your system has iconv_open().  If
+      compilation fails, specify --disable-iconv to configure and rebuild.  If
+      you want rsync to perform character-set conversions by default, you can
+      specify --enable-iconv=CONVERT_STRING with the default value for the
+      --iconv option that you wish to use.  For example, --enable-iconv=. is a
+      good choice.  See the rsync man page for an explanation of the --iconv
+      option's settings.
+
+    - You may specify --max-delete=0 to a 3.0.0 client as long as the receiving
+      side is at least version 3.0.0.  This means that you can pull from an
+      older rsync with this option, but pushing to an older rsync will generate
+      an error.  *Be sure to never specify a 0 value to an older rsync client,
+      or it will be silently ignored.*
+
+    - The --hard-link option now uses less memory on both the sending and
+      receiving side for all protocol versions.  For protocol 30, the use of a
+      hashtable on the sending side allows us to more efficiently convey to the
+      receiver what files are linked together.  This reduces the amount of data
+      sent over the socket by a considerable margin (rather than adding more
+      data), and limits the in-memory storage of the device+inode information
+      to just the sending side for the new protocol 30, or to the receiving
+      side when speaking an older protocol (note that older rsync versions kept
+      the device+inode information on both sides).
 
-    * Fixed bug in --copy-unsafe-links that caused it to be completely
-      broken.  (Dave Dykstra)
+  INTERNAL:
 
-    * Prevent infinite recursion in cleanup code under certain circumstances.
-      (Sviatoslav Sviridov and Marc Espie)
+    - Rsync now supports the transfer of 64-bit timestamps (time_t values).
 
-    * Fixed a bug that prevented rsync from creating intervening directories
-      when --relative-paths/-R is set.  (Craig Barratt)
+    - Fixed a build problem with older (2.x) versions of gcc.
 
-    * Prevent "Connection reset by peer" messages from Cygwin. (Randy O'Meara)
+    - Added some isType() functions that make dealing with signed characters
+      easier without forcing variables via casts.
 
-    * Prevent some hangs at the end of a run on Cygwin.  (Anthony Heading)
+    - Upgraded the included popt version to 1.10.2 and improved its use of
+      string-handling functions.
 
-  INTERNAL:
+    - Added missing prototypes for compatibility functions from the lib dir.
 
-    * Many code cleanups and improved internal documentation.  (Martin 
-      Pool, Nelson Beebe)
+    - Configure determines if iconv() has a const arg, allowing us to avoid a
+      compiler warning.
 
-    * Portability fixes. (Dave Dykstra and Wayne Davison)
+    - Made the sending of some numbers more efficient for protocol 30.
 
-    * More test cases.  (Martin Pool)
+    - Make sure that a daemon process doesn't mind if the client was weird and
+      omitted the --server option.
 
-    * Some test-case fixes.  (Brian Poole, Wayne Davison)
+    - Improved the use of "const" on pointers.
 
-    * Updated included popt to the latest vendor drop, version 1.6.4.
-      (Jos Backus)
+  DEVELOPER RELATED:
 
-    * Updated config.guess and config.sub to latest versions; this
-      means rsync should build on more platforms.  (Paul Green)
+    - Rsync now has a way of handling protocol-version changes during the
+      development of a new protocol version.  This exchange of sub-version
+      info does not interfere with the {MIN,MAX}_PROTOCOL_VERSION checking
+      in older versions (which would be the case if every minor change made
+      to the protocol in CVS incremented the main PROTOCOL_VERSION value).