X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/b6e22a47d3ed994c63876fe57ffd1cdccbb750ac..699f7024f1c4f14942723f5fd4de237be8706c65:/options.c diff --git a/options.c b/options.c index 669b15f9..ba7347ae 100644 --- a/options.c +++ b/options.c @@ -94,8 +94,8 @@ int daemon_bwlimit = 0; int bwlimit = 0; int fuzzy_basis = 0; size_t bwlimit_writemax = 0; -int only_existing = 0; -int opt_ignore_existing = 0; +int ignore_existing = 0; +int ignore_non_existing = 0; int need_messages_from_generator = 0; int max_delete = 0; OFF_T max_size = 0; @@ -251,16 +251,15 @@ void usage(enum logcode F) rprintf(F,"\nrsync is a file transfer program capable of efficient remote update\nvia a fast differencing algorithm.\n\n"); - rprintf(F,"Usage: rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST\n"); + rprintf(F,"Usage: rsync [OPTION]... SRC [SRC]... DEST\n"); + rprintf(F," or rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST\n"); + rprintf(F," or rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST\n"); + rprintf(F," or rsync [OPTION]... SRC [SRC]... rsync://[USER@]HOST[:PORT]/DEST\n"); rprintf(F," or rsync [OPTION]... [USER@]HOST:SRC [DEST]\n"); - rprintf(F," or rsync [OPTION]... SRC [SRC]... DEST\n"); rprintf(F," or rsync [OPTION]... [USER@]HOST::SRC [DEST]\n"); - rprintf(F," or rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST\n"); rprintf(F," or rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]\n"); - rprintf(F," or rsync [OPTION]... SRC [SRC]... rsync://[USER@]HOST[:PORT]/DEST\n"); - rprintf(F,"SRC on single-colon remote HOST will be expanded by remote shell\n"); - rprintf(F,"SRC on server remote HOST may contain shell wildcards or multiple\n"); - rprintf(F," sources separated by space as long as they have same top-level\n"); + rprintf(F,"The ':' usages connect via remote shell, while '::' & 'rsync://' usages connect\n"); + rprintf(F,"to an rsync daemon, and require SRC or DEST to start with a module name.\n"); rprintf(F,"\nOptions\n"); rprintf(F," -v, --verbose increase verbosity\n"); rprintf(F," -q, --quiet suppress non-error messages\n"); @@ -416,8 +415,9 @@ static struct poptOption long_options[] = { {"size-only", 0, POPT_ARG_NONE, &size_only, 0, 0, 0 }, {"one-file-system", 'x', POPT_ARG_NONE, &one_file_system, 0, 0, 0 }, {"update", 'u', POPT_ARG_NONE, &update_only, 0, 0, 0 }, - {"existing", 0, POPT_ARG_NONE, &only_existing, 0, 0, 0 }, - {"ignore-existing", 0, POPT_ARG_NONE, &opt_ignore_existing, 0, 0, 0 }, + {"existing", 0, POPT_ARG_NONE, &ignore_non_existing, 0, 0, 0 }, + {"ignore-existing", 0, POPT_ARG_NONE, &ignore_existing, 0, 0, 0 }, + {"ignore-non-existing",0,POPT_ARG_NONE, &ignore_non_existing, 0, 0, 0 }, {"max-size", 0, POPT_ARG_STRING, &max_size_arg, OPT_MAX_SIZE, 0, 0 }, {"sparse", 'S', POPT_ARG_NONE, &sparse_files, 0, 0, 0 }, {"inplace", 0, POPT_ARG_NONE, &inplace, 0, 0, 0 }, @@ -1023,7 +1023,7 @@ int parse_arguments(int *argc, const char ***argv, int frommain) "You may not combine multiple --delete-WHEN options.\n"); return 0; } - if (!recurse) { + if (!xfer_dirs) { delete_before = delete_during = delete_after = 0; delete_mode = delete_excluded = 0; } else if (delete_before || delete_during || delete_after) @@ -1499,12 +1499,13 @@ void server_options(char **args,int *argc) if (numeric_ids) args[ac++] = "--numeric-ids"; - if (only_existing && am_sender) - args[ac++] = "--existing"; - - if (opt_ignore_existing && am_sender) + if (ignore_existing && am_sender) args[ac++] = "--ignore-existing"; + /* Backward compatibility: send --existing, not --ignore-non-existing. */ + if (ignore_non_existing && am_sender) + args[ac++] = "--existing"; + if (append_mode) args[ac++] = "--append"; else if (inplace)