X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/bd397b8cbaec1fb144e83c4e93047d50cd4759ee..8303cc10215e252837e133a443146b585c639da9:/options.c diff --git a/options.c b/options.c index f51e1773..36be7f26 100644 --- 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) { @@ -1013,8 +1021,7 @@ void server_options(char **args,int *argc) if (am_sender) { if (delete_excluded) args[ac++] = "--delete-excluded"; - else if (delete_mode - && (!delete_after || protocol_version < 27)) + else if (delete_mode) args[ac++] = "--delete"; if (delete_after)