We now send -d to the server for a list-only transfer w/o -r (rather
authorWayne Davison <wayned@samba.org>
Sun, 7 Oct 2007 03:52:28 +0000 (03:52 +0000)
committerWayne Davison <wayned@samba.org>
Sun, 7 Oct 2007 03:52:28 +0000 (03:52 +0000)
than sending -r with a kluged exclude).

options.c

index 4ed54d9..61d2a90 100644 (file)
--- a/options.c
+++ b/options.c
@@ -1682,7 +1682,8 @@ void server_options(char **args, int *argc_p)
                argstr[x++] = 'n';
        if (preserve_links)
                argstr[x++] = 'l';
-       if (xfer_dirs > (recurse || !delete_mode || !am_sender ? 1 : 0))
+       if ((list_only && !recurse) || xfer_dirs > 1
+        || (xfer_dirs && !recurse && delete_mode && am_sender))
                argstr[x++] = 'd';
        if (am_sender) {
                if (keep_dirlinks)
@@ -1752,12 +1753,6 @@ void server_options(char **args, int *argc_p)
        if (do_compression)
                argstr[x++] = 'z';
 
-       /* This is a complete hack - blame Rusty.  FIXME!
-        * This hack is only needed for older rsync versions that
-        * don't understand the --list-only option. */
-       if (list_only == 1 && !recurse)
-               argstr[x++] = 'r';
-
 #if SUBPROTOCOL_VERSION != 0
        /* If we're speaking a pre-release version of a protocol, we tell
         * the server about this by (ab)using the -e option. */