[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