[SCM] The rsync repository. - branch b3.0.x updated

Rsync CVS commit messages rsync-cvs at lists.samba.org
Mon Feb 21 00:55:25 MST 2011


The branch, b3.0.x has been updated
       via  a6b3c2b Added more missing NEWS items.
       via  4e95f91 Some manpage enhancements.
       via  fad4ab9 Suggest a better solution for a make without wildcard support.
       via  f91b15f Add .hg dir exclude to default_cvsignore list. Fixes bug 7957.
      from  83b94ef Switch over to Matt's idea of using FLAG_OWNED_BY_US.

;a=shortlog;h=b3.0.x


- Log -----------------------------------------------------------------
commit a6b3c2b512ddc3ac480bdad583294e879be9d617
Author: Wayne Davison <wayned at samba.org>
Date:   Sun Feb 20 23:32:21 2011 -0800

    Added more missing NEWS items.

commit 4e95f91f27d978fa4b3a9fd8fed080a1306fb4e6
Author: Wayne Davison <wayned at samba.org>
Date:   Sun Feb 20 23:31:55 2011 -0800

    Some manpage enhancements.

commit fad4ab9d0b5046f3232cf612af8fbc9960044546
Author: Wayne Davison <wayned at samba.org>
Date:   Sun Feb 20 22:07:22 2011 -0800

    Suggest a better solution for a make without wildcard support.

commit f91b15fbd6a7d0b9dcfb642d35238df8f0b51202
Author: Wayne Davison <wayned at samba.org>
Date:   Thu Feb 17 22:07:20 2011 -0800

    Add .hg dir exclude to default_cvsignore list.
    Fixes bug 7957.

-----------------------------------------------------------------------

Summary of changes:
 INSTALL   |    5 +--
 NEWS      |   54 +++++++++++++++++++++++++++++++++++++++++++------
 exclude.c |    2 +-
 rsync.yo  |   66 +++++++++++++++++++++++++++++++++++++++++++-----------------
 4 files changed, 97 insertions(+), 30 deletions(-)


Changeset truncated at 500 lines:

diff --git a/INSTALL b/INSTALL
index ec551cc..6c016ad 100644
--- a/INSTALL
+++ b/INSTALL
@@ -33,9 +33,8 @@ your make has a problem with this rule, you will see an error like this:
 
     Don't know how to make ./*.c
 
-You can change the "proto.h-tstamp" target to omit its prerequisite args,
-but keep in mind that this will make a manual removal of "proto.h-tstamp"
-necessary anytime the function prototypes change.
+You can change the "proto.h-tstamp" target in Makefile.in to list all the *.c
+filenames explicitly in order to avoid this issue.
 
 RPM NOTES
 ---------
diff --git a/NEWS b/NEWS
index ca4e65d..2d57124 100644
--- a/NEWS
+++ b/NEWS
@@ -8,10 +8,29 @@ Changes since 3.0.7:
       exactly MAXPATHLEN was not handled correctly, and one handling a
       --backup-dir that is extra extra large.
 
+    - Fixed a data-corruption issue when preserving hard-links without
+      preserving file ownership, and doing deletions either before or during
+      the transfer.  This fixes some assert errors in the hard-linking code,
+      and some potential failed checksums (via -c) that should have matched.
+
     - Fixed a potential crash when an rsync daemon has a filter/exclude list
-      and the transfer is using ACLs or extended attributes.
+      and the transfer is using ACLs or xattrs.
+
+    - Fixed a hang if a really large file is being processed by an rsync that
+      can't handle 64-bit numbers.  Rsync will now complain about the file
+      being too big and skip it.
+
+    - For devices and special files, we now avoid gathering useless ACL and/or
+      xattr information for files that aren't being copied.  (The uncopied
+      files are still put into the file list, but there's no need to gather
+      data that is not going to be used.)  This ensures that if the user uses
+      --no-D, that rsync can't possibly complain about being unable to gather
+      extended information from special files that are in the file list (but
+      not in the transfer).
 
-    - Properly handle requesting remote filenames that start with a dash.
+    - Properly handle requesting remote filenames that start with a dash.  This
+      avoids a potential error where a filename could be interpreted as a
+      (usually invalid) option.
 
     - Fixed a bug in the comparing of upper-case letters in file suffixes for
       --skip-compress.
@@ -36,16 +55,20 @@ Changes since 3.0.7:
       an inplace chunk was handled by a seek rather than a read+write.
 
     - If we fail to connect to an rsync daemon, report all the connection
-      errors (e.g. ipv4 & ipv6), not just the last one.
+      errors (e.g. IPv4 & IPv6), not just the last one.
 
-    - Fixed an issue where an xattr and/or acl transfer that used an alt-dest
+    - Fixed an issue where an xattr and/or ACL transfer that used an alt-dest
       option (e.g. --link-dest) could output an error trying to itemize the
-      changes against the alt-dest directory's xattr/acl info but was instead
-      tryring to access the not-yet-existing new destination directory.
+      changes against the alt-dest directory's xattr/ACL info but was instead
+      trying to access the not-yet-existing new destination directory.
 
     - Improved xattr system-error messages to mention the full path to the
       file.
 
+    - Avoid trying to read/write xattrs on certain file types for certain OSes.
+      Improved configure to set NO_SYMLINK_XATTRS, NO_DEVICE_XATTRS, and/or
+      NO_SPECIAL_XATTRS defines in config.h.
+
     - Improved the unsafe-symlink errors messages.
 
     - Fixed a bug setting xattrs on new files that aren't user writable.
@@ -53,14 +76,31 @@ Changes since 3.0.7:
     - Fixed a bug with --fake-super when copying files and dirs that aren't
       user writable.
 
+    - If a temp-file name is too long, rsync now avoids truncating the name in
+      the middle of adjacent high-bit characters.  This prevents a potential
+      filename error if the filesystem doesn't allow a name to contain an
+      invalid multi-byte sequence.
+
+    - If a muli-protocol socket connection fails (i.e., when contacting a
+      daemon), we now report all the failures, not just the last one.  This
+      avoids losing a relevant error (e.g. an IPv4 connection-refused error)
+      that happened before the final error (e.g. an IPv6 protocol-not-supported
+      error).
+
     - Fix the popt arg parsing so that an option that doesn't take an arg will
-      reject an attempt to supply and arg.
+      reject an attempt to supply one.
 
     - A couple minor option tweaks to support/rrsync script, and also some
       regex changes that make vim highlighting happier.
 
+    - Fixed some issues in the support/mnt-excl script.
+
     - A few manpage improvements.
 
+  ENHANCEMENTS:
+
+    - Added ".hg/" to the default cvs excludes (see -C & --cvs-exclude).
+
   DEVELOPER RELATED:
 
     - Use lchmod() whenever it is available (not just on symlinks).
diff --git a/exclude.c b/exclude.c
index e6490b0..6101dda 100644
--- a/exclude.c
+++ b/exclude.c
@@ -924,7 +924,7 @@ static char default_cvsignore[] =
 	" *.a *.olb *.o *.obj *.so *.exe"
 	" *.Z *.elc *.ln core"
 	/* The rest we added to suit ourself. */
-	" .svn/ .git/ .bzr/";
+	" .svn/ .git/ .hg/ .bzr/";
 
 static void get_cvs_excludes(uint32 mflags)
 {
diff --git a/rsync.yo b/rsync.yo
index 0bb9b58..cf92499 100644
--- a/rsync.yo
+++ b/rsync.yo
@@ -732,7 +732,9 @@ quote(itemization(
   it() The file's data will be in an inconsistent state during the transfer
   and will be left that way if the transfer is interrupted or if an update
   fails.
-  it() A file that does not have write permissions cannot be updated.
+  it() A file that rsync cannot write to cannot be updated. While a super user
+  can update any file, a normal user needs to be granted write permission for
+  the open of the file for writing to be successful.
   it() The efficiency of rsync's delta-transfer algorithm may be reduced if
   some data in the destination file is overwritten before it can be copied to
   a position later in the file.  This does not apply if you use bf(--backup),
@@ -745,7 +747,8 @@ accessed by others, so be careful when choosing to use this for a copy.
 
 This option is useful for transferring large files with block-based changes
 or appended data, and also on systems that are disk bound, not network
-bound.
+bound.  It can also help keep a copy-on-write filesystem snapshot from
+diverging the entire contents of a file that only has minor changes.
 
 The option implies bf(--partial) (since an interrupted transfer does not delete
 the file), but conflicts with bf(--partial-dir) and bf(--delay-updates).
@@ -872,13 +875,14 @@ destination exactly matches that on the source.  Cases in which the
 destination may end up with extra hard links include the following:
 
 quote(itemization(
-  it() If the destination already contains hard links, rsync will not break
-  them explicitly.  However, if one or more of the paths have content
-  differences, the normal file-update process will break those links, unless
-  you are using the bf(--inplace) option.
+  it() If the destination contains extraneous hard-linked files, rsync will not
+  break them explicitly.  However, if one or more of the paths have content
+  differences, the normal file-update process will break those extra links
+  (unless you are using the bf(--inplace) option).
   it() If you specify a bf(--link-dest) directory that contains hard links,
-  rsync may use the same bf(--link-dest) file multiple times via several of
-  its paths.
+  the linking of the destination files against the bf(--link-dest) files can
+  cause some paths in the destination to become linked together due to the
+  bf(--link-dest) associations.
 ))
 
 Note that rsync can only detect hard links between files that are inside
@@ -892,7 +896,10 @@ see the bf(--inplace) option for more caveats).
 If incremental recursion is active (see bf(--recursive)), rsync may transfer
 a missing hard-linked file before it finds that another link for that contents
 exists elsewhere in the hierarchy.  This does not affect the accuracy of
-the transfer, just its efficiency.  One way to avoid this is to disable
+the transfer (i.e. which files are hard-linked together), just its efficiency
+(i.e. copying the data for a new, early copy of a hard-linked file that could
+have been found later in the transfer in another member of the hard-linked
+set of files).  One way to avoid this inefficiency is to disable
 incremental recursion using the bf(--no-inc-recursive) option.
 
 dit(bf(-p, --perms)) This option causes the receiving rsync to set the
@@ -1361,7 +1368,7 @@ initial items are marked as perishable -- see the FILTER RULES section):
 
 quote(quote(tt(RCS SCCS CVS CVS.adm RCSLOG cvslog.* tags TAGS .make.state
 .nse_depinfo *~ #* .#* ,* _$* *$ *.old *.bak *.BAK *.orig *.rej .del-*
-*.a *.olb *.o *.obj *.so *.exe *.Z *.elc *.ln core .svn/ .git/ .bzr/)))
+*.a *.olb *.o *.obj *.so *.exe *.Z *.elc *.ln core .svn/ .git/ .hg/ .bzr/)))
 
 then, files listed in a $HOME/.cvsignore are added to the list and any
 files listed in the CVSIGNORE environment variable (all cvsignore names
@@ -1655,7 +1662,7 @@ You may specify an empty string to indicate that no file should be skipped.
 
 Simple character-class matching is supported: each must consist of a list
 of letters inside the square brackets (e.g. no special classes, such as
-"[:alpha:]", are supported).
+"[:alpha:]", are supported, and '-' has no special meaning).
 
 The characters asterisk (*) and question-mark (?) have no special meaning.
 
@@ -1664,10 +1671,26 @@ matches 2 suffixes):
 
 verb(    --skip-compress=gz/jpg/mp[34]/7z/bz2)
 
-The default list of suffixes that will not be compressed is this (several
-of these are newly added for 3.0.0):
-
-verb(    gz/zip/z/rpm/deb/iso/bz2/t[gb]z/7z/mp[34]/mov/avi/ogg/jpg/jpeg)
+The default list of suffixes that will not be compressed is this (in this
+version of rsync):
+
+bf(7z)
+bf(avi)
+bf(bz2)
+bf(deb)
+bf(gz)
+bf(iso)
+bf(jpeg)
+bf(jpg)
+bf(mov)
+bf(mp3)
+bf(mp4)
+bf(ogg)
+bf(rpm)
+bf(tbz)
+bf(tgz)
+bf(z)
+bf(zip)
 
 This list will be replaced by your bf(--skip-compress) list in all but one
 situation: a copy from a daemon rsync will add your skipped suffixes to
@@ -2066,7 +2089,8 @@ transfer that may be interrupted.
 
 dit(bf(--password-file)) This option allows you to provide a password in a
 file for accessing an rsync daemon.  The file must not be world readable.
-It should contain just the password as a single line.
+It should contain just the password as the first line of the file (all
+other lines are ignored).
 
 This option does not supply a password to a remote shell transport such as
 ssh; to learn how to do that, consult the remote shell's documentation.
@@ -2509,10 +2533,14 @@ itemization(
   also disabled).
   it() You may also specify any of the modifiers for the "+" or "-" rules
   (above) in order to have the rules that are read in from the file
-  default to having that modifier set.  For instance, "merge,-/ .excl" would
+  default to having that modifier set (except for the bf(!) modifier, which
+  would not be useful).  For instance, "merge,-/ .excl" would
   treat the contents of .excl as absolute-path excludes,
   while "dir-merge,s .filt" and ":sC" would each make all their
-  per-directory rules apply only on the sending side.
+  per-directory rules apply only on the sending side.  If the merge rule
+  specifies sides to affect (via the bf(s) or bf(r) modifier or both),
+  then the rules in the file must not specify sides (via a modifier or
+  a rule prefix such as bf(hide)).
 )
 
 Per-directory rules are inherited in all subdirectories of the directory
@@ -2926,7 +2954,7 @@ dit(bf(CVSIGNORE)) The CVSIGNORE environment variable supplements any
 ignore patterns in .cvsignore files. See the bf(--cvs-exclude) option for
 more details.
 dit(bf(RSYNC_ICONV)) Specify a default bf(--iconv) setting using this
-environment variable.
+environment variable. (First supported in 3.0.0.)
 dit(bf(RSYNC_RSH)) The RSYNC_RSH environment variable allows you to
 override the default shell used as the transport for rsync.  Command line
 options are permitted after the command name, just as in the bf(-e) option.


-- 
The rsync repository.


More information about the rsync-cvs mailing list