Got rid of the erroneous --dry-run short-circuit in the directory
[rsync/rsync.git] / rsync.yo
index 2d7b649..2989121 100644 (file)
--- a/rsync.yo
+++ b/rsync.yo
@@ -318,7 +318,7 @@ verb(
      --backup-dir            make backups into this directory
      --suffix=SUFFIX         backup suffix (default ~ w/o --backup-dir)
  -u, --update                update only (don't overwrite newer files)
-     --inplace               update the destination files inplace
+     --inplace               update the destination files in-place
  -K, --keep-dirlinks         treat symlinked dir on receiver as dir
  -l, --links                 copy symlinks as symlinks
  -L, --copy-links            copy the referent of all symlinks
@@ -535,23 +535,25 @@ from the sender.
 
 dit(bf(--inplace)) This causes rsync not to create a new copy of the file
 and then move it into place.  Instead rsync will overwrite the existing
-file, meaning that the rsync algorithm can't extract the full amount of
-network reduction it might otherwise (since it does not yet try to sort
-data matches -- a future version may improve this).
+file, meaning that the rsync algorithm can't accomplish the full amount of
+network reduction it might be able to otherwise (since it does not yet try
+to sort data matches).  One exception to this is if you combine the option
+with --backup, since rsync is smart enough to use the backup file as the
+basis file for the transfer.
 
 This option is useful for transfer of large files with block-based changes
 or appended data, and also on systems that are disk bound, not network
 bound.
 
 The option implies --partial (since an interrupted transfer does not delete
-the file), but conflicts with --partial-dir, --compare-dest, --copy-dest, and
---link-dest (a future rsync version will hopefully update the protocol to
-remove some of these restrictions).
+the file), but conflicts with --partial-dir.  Prior to rsync 2.6.4
+--inplace was also incompatible with --compare-dest, --copy-dest, and
+--link-dest.
 
 WARNING: The file's data will be in an inconsistent state during the
 transfer (and possibly afterward if the transfer gets interrupted), so you
 should not use this option to update files that are in use.  Also note that
-rsync will be unable to update a file inplace that is not writable by the
+rsync will be unable to update a file in-place that is not writable by the
 receiving user.
 
 dit(bf(-l, --links)) When symlinks are encountered, recreate the
@@ -658,17 +660,22 @@ file that is larger than the specified SIZE. The SIZE value can be
 suffixed with a letter to indicate a size multiplier (K, M, or G) and
 may be a fractional value (e.g. "--max-size=1.5m").
 
-dit(bf(--delete)) This tells rsync to delete any files on the receiving
-side that aren't on the sending side.   Files that are excluded from
-transfer are excluded from being deleted unless you use --delete-excluded.
+dit(bf(--delete)) This tells rsync to delete extraneous files from the
+receiving side (ones that aren't on the sending side), but only for the
+directories that are being synchronized.  You must have asked rsync to
+send the whole directory (e.g. "dir" or "dir/") without using a wildcard
+for the directory's contents (e.g. "dir/*") since the wildcard is expanded
+by the shell and rsync thus gets a request to transfer those files, not
+the files' parent directory.  Files that are excluded from transfer are
+excluded from being deleted unless you use --delete-excluded.
 
 This option has no effect if directory recursion is not selected.
 
 This option can be dangerous if used incorrectly!  It is a very good idea
-to run first using the dry run option (-n) to see what files would be
+to run first using the --dry-run option (-n) to see what files would be
 deleted to make sure important files aren't listed.
 
-If the sending side detects any I/O errors then the deletion of any
+If the sending side detects any I/O errors, then the deletion of any
 files at the destination will be automatically disabled. This is to
 prevent temporary filesystem failures (such as NFS errors) on the
 sending side causing a massive deletion of files on the
@@ -684,6 +691,10 @@ receiving side before transferring files to try to ensure that there is
 sufficient space on the receiving filesystem. If you want to delete
 after transferring, use the --delete-after switch. Implies --delete.
 
+One reason to use --delete-after is to avoid a delay before the start of
+the transfer (while the receiving side is scanned for deletions) as this
+delay might cause the transfer to timeout.  
+
 dit(bf(--ignore-errors)) Tells --delete to go ahead and delete files
 even when there are I/O errors.
 
@@ -864,8 +875,8 @@ See also --compare-dest and --copy-dest.
 
 Note that rsync versions prior to 2.6.1 had a bug that could prevent
 --link-dest from working properly for a non-root user when -o was specified
-(or implied by -a).  If the receiving rsync is not new enough, you can work
-around this bug by avoiding the -o option.
+(or implied by -a).  You can work-around this bug by avoiding the -o option
+when sending to an old rsync.
 
 dit(bf(-z, --compress)) With this option, rsync compresses any data from
 the files that it sends to the destination machine.  This
@@ -1161,7 +1172,8 @@ look at the output when using --verbose and put a / in front of the name
 Note that, when using the --recursive (-r) option (which is implied by -a),
 every subcomponent of
 every path is visited from the top down, so include/exclude patterns get
-applied recursively to each subcomponent.
+applied recursively to each subcomponent's full name (e.g. to include
+"/foo/bar/baz" the subcomponents "/foo" and "/foo/bar" must not be excluded).
 The exclude patterns actually short-circuit the directory traversal stage
 when rsync finds the files to send.  If a pattern excludes a particular
 parent directory, it can render a deeper include pattern ineffectual