char *password_file = NULL;
char *rsync_path = RSYNC_PATH;
char *backup_dir = NULL;
-char *chmod_mode = NULL;
char backup_dir_buf[MAXPATHLEN];
int rsync_port = 0;
int compare_dest = 0;
static int refused_delete, refused_archive_part, refused_compress;
static int refused_partial, refused_progress, refused_delete_before;
static int refused_inplace;
+static char *chmod_mode = NULL;
static char *max_size_arg, *min_size_arg;
static char partialdir_for_delayupdate[] = ".~tmp~";
rprintf(f, "%s version %s protocol version %d\n",
RSYNC_NAME, RSYNC_VERSION, PROTOCOL_VERSION);
- rprintf(f,
- "Copyright (C) 1996-2005 by Andrew Tridgell and others\n");
+ rprintf(f, "Copyright (C) 1996-2006 by Wayne Davison, Andrew Tridgell, and others\n");
rprintf(f, "<http://rsync.samba.org/>\n");
rprintf(f, "Capabilities: %d-bit files, %ssocketpairs, "
"%shard links, %ssymlinks, batchfiles, \n",
(int) SIZEOF_INT64, (int) sizeof (int64));
}
- rprintf(f,
-"\n"
-"rsync comes with ABSOLUTELY NO WARRANTY. This is free software, and you\n"
-"are welcome to redistribute it under certain conditions. See the GNU\n"
-"General Public Licence for details.\n"
- );
+ rprintf(f,"\nrsync comes with ABSOLUTELY NO WARRANTY. This is free software, and you\n");
+ rprintf(f,"are welcome to redistribute it under certain conditions. See the GNU\n");
+ rprintf(f,"General Public Licence for details.\n");
}
{
print_rsync_version(F);
- rprintf(F,"\nrsync is a file transfer program capable of efficient remote update\nvia a fast differencing algorithm.\n\n");
+ rprintf(F,"\nrsync is a file transfer program capable of efficient remote update\n");
+ rprintf(F,"via a fast differencing algorithm.\n");
- rprintf(F,"Usage: rsync [OPTION]... SRC [SRC]... DEST\n");
+ rprintf(F,"\nUsage: 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");
{"chmod", 0, POPT_ARG_STRING, &chmod_mode, 0, 0, 0 },
{"ignore-times", 'I', POPT_ARG_NONE, &ignore_times, 0, 0, 0 },
{"size-only", 0, POPT_ARG_NONE, &size_only, 0, 0, 0 },
- {"one-file-system", 'x', POPT_ARG_NONE, &one_file_system, 0, 0, 0 },
+ {"one-file-system", 'x', POPT_ARG_NONE, 0, 'x', 0, 0 },
{"update", 'u', POPT_ARG_NONE, &update_only, 0, 0, 0 },
{"existing", 0, POPT_ARG_NONE, &ignore_non_existing, 0, 0, 0 },
{"ignore-non-existing",0,POPT_ARG_NONE, &ignore_non_existing, 0, 0, 0 },
{"partial-dir", 0, POPT_ARG_STRING, &partial_dir, 0, 0, 0 },
{"delay-updates", 0, POPT_ARG_NONE, &delay_updates, 0, 0, 0 },
{"log-format", 0, POPT_ARG_STRING, &log_format, 0, 0, 0 },
- {"itemize-changes", 'i', POPT_ARG_NONE, &itemize_changes, 0, 0, 0 },
+ {"itemize-changes", 'i', POPT_ARG_NONE, 0, 'i', 0, 0 },
{"bwlimit", 0, POPT_ARG_INT, &bwlimit, 0, 0, 0 },
{"backup", 'b', POPT_ARG_NONE, &make_backups, 0, 0, 0 },
{"backup-dir", 0, POPT_ARG_STRING, &backup_dir, 0, 0, 0 },
usage(FINFO);
exit_cleanup(0);
+ case 'i':
+ itemize_changes++;
+ break;
+
case 'v':
verbose++;
break;
quiet++;
break;
+ case 'x':
+ one_file_system++;
+ break;
+
case OPT_SENDER:
if (!am_server) {
usage(FERROR);
}
if (log_format) {
- if (log_format_has(log_format, 'i'))
- log_format_has_i = 1;
+ if (am_server && log_format_has(log_format, 'I'))
+ log_format_has_i = 2;
+ else if (log_format_has(log_format, 'i'))
+ log_format_has_i = itemize_changes | 1;
if (!log_format_has(log_format, 'b')
&& !log_format_has(log_format, 'c'))
log_before_transfer = !am_server;
} else if (itemize_changes) {
log_format = "%i %n%L";
- log_format_has_i = 1;
+ log_format_has_i = itemize_changes;
log_before_transfer = !am_server;
}
argstr[x++] = 'I';
if (relative_paths)
argstr[x++] = 'R';
- if (one_file_system)
+ if (one_file_system) {
argstr[x++] = 'x';
+ if (one_file_system > 1)
+ argstr[x++] = 'x';
+ }
if (sparse_files)
argstr[x++] = 'S';
if (do_compression)
/* The server side doesn't use our log-format, but in certain
* circumstances they need to know a little about the option. */
if (log_format && am_sender) {
- if (log_format_has_i)
+ if (log_format_has_i > 1)
+ args[ac++] = "--log-format=%i%I";
+ else if (log_format_has_i)
args[ac++] = "--log-format=%i";
else if (log_format_has_o_or_i)
args[ac++] = "--log-format=%o";
}
}
- if (chmod_mode && !am_sender) {
- args[ac++] = "--chmod";
- args[ac++] = chmod_mode;
- }
-
if (files_from && (!am_sender || filesfrom_host)) {
if (filesfrom_host) {
args[ac++] = "--files-from";