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 <way...@samba.org> Date: Sun Feb 20 23:32:21 2011 -0800 Added more missing NEWS items. commit 4e95f91f27d978fa4b3a9fd8fed080a1306fb4e6 Author: Wayne Davison <way...@samba.org> Date: Sun Feb 20 23:31:55 2011 -0800 Some manpage enhancements. commit fad4ab9d0b5046f3232cf612af8fbc9960044546 Author: Wayne Davison <way...@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 <way...@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. _______________________________________________ rsync-cvs mailing list rsync-cvs@lists.samba.org https://lists.samba.org/mailman/listinfo/rsync-cvs