Changed write file to cope with partial writes by looping
[rsync/rsync.git] / rsync.yo
index 5360d43..5faa561 100644 (file)
--- a/rsync.yo
+++ b/rsync.yo
@@ -507,8 +507,13 @@ the source and target are on the local machine.
 dit(bf(--no-whole-file)) Turn off --whole-file, for use when it is the
 default.
 
 dit(bf(--no-whole-file)) Turn off --whole-file, for use when it is the
 default.
 
-dit(bf(-p, --perms)) This option causes rsync to update the remote
-permissions to be the same as the local permissions.
+dit(bf(-p, --perms)) This option causes rsync to set the destination
+permissions to be the same as the source permissions.
+
+Without this option, each new file gets its permissions set based on the
+source file's permissions and the umask at the receiving end, while all
+other files (including updated files) retain their existing permissions
+(which is the same behavior as other file-copy utilities, such as cp).
 
 dit(bf(-o, --owner)) This option causes rsync to set the owner of the
 destination file to be the same as the source file.  On most systems,
 
 dit(bf(-o, --owner)) This option causes rsync to set the owner of the
 destination file to be the same as the source file.  On most systems,
@@ -734,6 +739,8 @@ dit(bf(--link-dest=DIR)) This option behaves like bf(--compare-dest) but
 also will create hard links from em(DIR) to the destination directory for
 unchanged files.  Files with changed ownership or permissions will not be
 linked.
 also will create hard links from em(DIR) to the destination directory for
 unchanged files.  Files with changed ownership or permissions will not be
 linked.
+Like bf(--compare-dest) if DIR is a relative path, it is relative
+to the destination directory.
 
 dit(bf(-z, --compress)) With this option, rsync compresses any data from
 the files that it sends to the destination machine.  This
 
 dit(bf(-z, --compress)) With this option, rsync compresses any data from
 the files that it sends to the destination machine.  This
@@ -871,8 +878,8 @@ skipped. If it is an include pattern then that filename is not
 skipped. If no matching include/exclude pattern is found then the
 filename is not skipped.
 
 skipped. If no matching include/exclude pattern is found then the
 filename is not skipped.
 
-The filenames matched against the exclude/incldue patterns are
-relative to the base directories so patterns should not
+The filenames matched against the exclude/include patterns are
+relative to the base directories, so patterns should not
 include the path elements to those base directories.  The
 only way in which a pattern will match the absolute path of
 a file or directory is if the base path is the root directory.
 include the path elements to those base directories.  The
 only way in which a pattern will match the absolute path of
 a file or directory is if the base path is the root directory.
@@ -893,7 +900,8 @@ itemize(
   start of the filename, otherwise it is matched against the end of
   the filename.
   This is the equivalent of a leading ^ in regular expressions.
   start of the filename, otherwise it is matched against the end of
   the filename.
   This is the equivalent of a leading ^ in regular expressions.
-  Thus "/foo" would match a file called "foo" at the base of the tree.
+  Thus "/foo" would match a file called "foo" at the base of the
+  transferred tree.
   On the other hand, "foo" would match any file called "foo"
   anywhere in the tree because the algorithm is applied recursively from
   top down; it behaves as if each path component gets a turn at being the
   On the other hand, "foo" would match any file called "foo"
   anywhere in the tree because the algorithm is applied recursively from
   top down; it behaves as if each path component gets a turn at being the
@@ -910,11 +918,11 @@ itemize(
   it() if the pattern includes a double asterisk "**" then all wildcards in
   the pattern will match slashes, otherwise they will stop at slashes.
 
   it() if the pattern includes a double asterisk "**" then all wildcards in
   the pattern will match slashes, otherwise they will stop at slashes.
 
-  it() if the pattern contains a / (not counting a trailing /) then it
-  is matched against the full filename, including any leading
-  directory. If the pattern doesn't contain a / then it is matched
-  only against the final component of the filename.  Again, remember
-  that the algorithm is applied recursively so "full filename" can 
+  it() if the pattern contains a / (not counting a trailing /) or a "**"
+  then it is matched against the full filename, including any leading
+  directory. If the pattern doesn't contain a / or a "**", then it is
+  matched only against the final component of the filename.  Again,
+  remember that the algorithm is applied recursively so "full filename" can
   actually be any portion of a path.
 
   it() if the pattern starts with "+ " (a plus followed by a space)
   actually be any portion of a path.
 
   it() if the pattern starts with "+ " (a plus followed by a space)
@@ -929,8 +937,9 @@ itemize(
   include/exclude list is reset, removing all previously defined patterns.
 )
 
   include/exclude list is reset, removing all previously defined patterns.
 )
 
-The +/- rules are most useful in exclude lists, allowing you to have a
-single exclude list that contains both include and exclude options.
+The +/- rules are most useful in a list that was read from a file, allowing
+you to have a single exclude list that contains both include and exclude
+options.
 
 If you end an exclude list with --exclude '*', note that since the
 algorithm is applied recursively that unless you explicitly include
 
 If you end an exclude list with --exclude '*', note that since the
 algorithm is applied recursively that unless you explicitly include