Mention the latest changes.
[rsync/rsync.git] / options.c
index 9c97191..36be7f2 100644 (file)
--- a/options.c
+++ b/options.c
@@ -232,7 +232,7 @@ void usage(enum logcode F)
   rprintf(F," -v, --verbose               increase verbosity\n");
   rprintf(F," -q, --quiet                 decrease verbosity\n");
   rprintf(F," -c, --checksum              always checksum\n");
-  rprintf(F," -a, --archive               archive mode, equivalent to -rlptgoD\n");
+  rprintf(F," -a, --archive               archive mode, equivalent to -rlptgoD (no -H)\n");
   rprintf(F," -r, --recursive             recurse into directories\n");
   rprintf(F," -R, --relative              use relative path names\n");
   rprintf(F,"     --no-relative           turn off --relative\n");
@@ -623,7 +623,7 @@ int parse_arguments(int *argc, const char ***argv, int frommain)
                                struct poptOption *op =
                                    &long_options[opt-OPT_REFUSED_BASE];
                                int n = snprintf(err_buf, sizeof err_buf,
-                                   "This server does not support --%s\n",
+                                   "The server is configured to refuse --%s\n",
                                    op->longName) - 1;
                                if (op->shortName) {
                                        snprintf(err_buf+n, sizeof err_buf-n,
@@ -833,10 +833,18 @@ int parse_arguments(int *argc, const char ***argv, int frommain)
                                 link_dest ? "--link-dest" : "--compare-dest");
                        return 0;
                }
-       } else if (partial_dir) {
-               if (strcmp(partial_dir, ".") == 0)
-                       partial_dir = NULL;
-               keep_partial = 1;
+       } else {
+               if (keep_partial && !partial_dir)
+                       partial_dir = getenv("RSYNC_PARTIAL_DIR");
+               if (partial_dir) {
+                       if (!*partial_dir || strcmp(partial_dir, ".") == 0)
+                               partial_dir = NULL;
+                       else if (*partial_dir != '/') {
+                               add_exclude(&exclude_list, partial_dir,
+                                           XFLG_DIRECTORY);
+                       }
+                       keep_partial = 1;
+               }
        }
 
        if (files_from) {