FN_LOCAL_BOOL(lp_ignore_errors, ignore_errors)
FN_LOCAL_BOOL(lp_ignore_nonreadable, ignore_nonreadable)
FN_LOCAL_STRING(lp_uid, uid)
---- orig/log.c 2005-03-16 02:19:30
+--- orig/log.c 2005-03-27 05:58:51
+++ log.c 2004-07-03 20:22:18
@@ -83,7 +83,7 @@ struct {
/*
if (fd1 != -1)
close(fd1);
---- orig/sender.c 2005-03-16 02:19:30
+--- orig/sender.c 2005-03-28 20:56:55
+++ sender.c 2005-03-05 00:31:19
-@@ -351,6 +351,9 @@ void send_files(struct file_list *flist,
+@@ -343,6 +343,9 @@ void send_files(struct file_list *flist,
if (!log_before_transfer)
log_item(file, &initial_stats, iflags, NULL);
if (f >= 0) {
/* Now send the uid/gid list. This was introduced in
* protocol version 15 */
---- orig/generator.c 2005-03-17 09:05:21
+--- orig/generator.c 2005-03-29 01:05:12
+++ generator.c 2005-03-11 11:18:22
-@@ -712,6 +712,10 @@ static void recv_generator(char *fname,
+@@ -711,6 +711,10 @@ static void recv_generator(char *fname,
if (set_perms(fname, file, statret ? NULL : &st, 0)
&& verbose && code && f_out != -1)
rprintf(code, "%s/\n", safe_fname(fname));
next;
}
---- orig/options.c 2005-03-24 16:41:46
+--- orig/options.c 2005-03-28 20:56:55
+++ options.c 2005-02-14 02:46:05
@@ -44,6 +44,7 @@ int keep_dirlinks = 0;
int copy_links = 0;
rprintf(F," -o, --owner preserve owner (root only)\n");
rprintf(F," -g, --group preserve group\n");
rprintf(F," -D, --devices preserve devices (root only)\n");
-@@ -404,6 +411,7 @@ static struct poptOption long_options[]
+@@ -405,6 +412,7 @@ static struct poptOption long_options[]
{"no-whole-file", 0, POPT_ARG_VAL, &whole_file, 0, 0, 0 },
{"copy-unsafe-links",0, POPT_ARG_NONE, ©_unsafe_links, 0, 0, 0 },
{"perms", 'p', POPT_ARG_NONE, &preserve_perms, 0, 0, 0 },
{"owner", 'o', POPT_ARG_NONE, &preserve_uid, 0, 0, 0 },
{"group", 'g', POPT_ARG_NONE, &preserve_gid, 0, 0, 0 },
{"devices", 'D', POPT_ARG_NONE, &preserve_devices, 0, 0, 0 },
-@@ -862,6 +870,24 @@ int parse_arguments(int *argc, const cha
+@@ -863,6 +871,24 @@ int parse_arguments(int *argc, const cha
basis_dir[basis_dir_cnt++] = (char *)arg;
break;
default:
/* A large opt value means that set_refuse_options()
* turned this option off. */
-@@ -1264,6 +1290,8 @@ void server_options(char **args,int *arg
+@@ -1265,6 +1291,8 @@ void server_options(char **args,int *arg
if (preserve_hard_links)
argstr[x++] = 'H';
if (verbose > 1 && flags & PERMS_REPORT) {
enum logcode code = daemon_log_format_has_i || dry_run
? FCLIENT : FINFO;
---- orig/rsync.h 2005-03-16 02:19:30
+--- orig/rsync.h 2005-03-28 20:56:55
+++ rsync.h 2004-07-03 20:11:58
@@ -639,6 +639,40 @@ struct stats {
#include "lib/permstring.h"
#include "proto.h"
/* We have replacement versions of these if they're missing. */
---- orig/rsync.yo 2005-03-16 02:19:30
+--- orig/rsync.yo 2005-03-28 20:56:55
+++ rsync.yo 2004-07-03 20:11:58
@@ -316,6 +316,7 @@ to the detailed description below for a
-H, --hard-links preserve hard links
-o, --owner preserve owner (root only)
-g, --group preserve group
-D, --devices preserve devices (root only)
-@@ -624,6 +625,11 @@ source file's permissions and the umask
+@@ -625,6 +626,11 @@ source file's permissions and the umask
other files (including updated files) retain their existing permissions
(which is the same behavior as other file-copy utilities, such as cp).
This patch adds the --append option, which works like a "resume" mode in
an ftp client, appending new data onto the end of the files it updates.
---- orig/generator.c 2005-03-17 09:05:21
+--- orig/generator.c 2005-03-29 01:05:12
+++ generator.c 2005-03-03 02:59:17
-@@ -51,6 +51,7 @@ extern int remove_sent_files;
+@@ -52,6 +52,7 @@ extern int delay_updates;
extern int update_only;
extern int opt_ignore_existing;
extern int inplace;
extern int make_backups;
extern int csum_length;
extern int ignore_times;
-@@ -466,35 +467,42 @@ static void generate_and_send_sums(int f
+@@ -465,35 +466,42 @@ static void generate_and_send_sums(int f
OFF_T offset = 0;
sum_sizes_sqroot(&sum, len);
}
if (mapbuf)
-@@ -973,6 +981,9 @@ static void recv_generator(char *fname,
+@@ -972,6 +980,9 @@ static void recv_generator(char *fname,
return;
}
if (!compare_dest && fnamecmp_type <= FNAMECMP_BASIS_DIR_HIGH)
;
else if (fnamecmp_type == FNAMECMP_FUZZY)
-@@ -1143,7 +1154,7 @@ void generate_files(int f_out, struct fi
+@@ -1142,7 +1153,7 @@ void generate_files(int f_out, struct fi
if (delete_before && !local_name && flist->count > 0)
do_delete_pass(flist);
whole_file = 0;
if (verbose >= 2) {
rprintf(FINFO, "delta-transmission %s\n",
-@@ -1194,6 +1205,8 @@ void generate_files(int f_out, struct fi
+@@ -1193,6 +1204,8 @@ void generate_files(int f_out, struct fi
only_existing = max_size = opt_ignore_existing = 0;
update_only = always_checksum = size_only = 0;
ignore_times = 1;
matched(f, s, buf, j, -2);
matched(f, s, buf, len, -1);
}
---- orig/options.c 2005-03-24 16:41:46
+--- orig/options.c 2005-03-28 20:56:55
+++ options.c 2005-03-11 11:21:34
@@ -39,6 +39,7 @@ int make_backups = 0;
**/
rprintf(F," -d, --dirs transfer directories without recursing\n");
rprintf(F," -l, --links copy symlinks as symlinks\n");
rprintf(F," -L, --copy-links transform symlink into referent file/dir\n");
-@@ -400,6 +403,7 @@ static struct poptOption long_options[]
+@@ -401,6 +404,7 @@ static struct poptOption long_options[]
{"links", 'l', POPT_ARG_NONE, &preserve_links, 0, 0, 0 },
{"copy-links", 'L', POPT_ARG_NONE, ©_links, 0, 0, 0 },
{"keep-dirlinks", 'K', POPT_ARG_NONE, &keep_dirlinks, 0, 0, 0 },
{"whole-file", 'W', POPT_ARG_VAL, &whole_file, 1, 0, 0 },
{"no-whole-file", 0, POPT_ARG_VAL, &whole_file, 0, 0, 0 },
{"copy-unsafe-links",0, POPT_ARG_NONE, ©_unsafe_links, 0, 0, 0 },
-@@ -574,6 +578,8 @@ static void set_refuse_options(char *bp)
+@@ -575,6 +579,8 @@ static void set_refuse_options(char *bp)
refused_partial = op->val;
else if (wildmatch("progress", op->longName))
refused_progress = op->val;
break;
}
if (!is_wild)
-@@ -1108,6 +1114,14 @@ int parse_arguments(int *argc, const cha
+@@ -1109,6 +1115,14 @@ int parse_arguments(int *argc, const cha
bwlimit_writemax = 512;
}
if (delay_updates && !partial_dir)
partial_dir = partialdir_for_delayupdate;
-@@ -1418,7 +1432,9 @@ void server_options(char **args,int *arg
+@@ -1419,7 +1433,9 @@ void server_options(char **args,int *arg
if (opt_ignore_existing && am_sender)
args[ac++] = "--ignore-existing";
continue;
}
---- orig/rsync.yo 2005-03-16 02:19:30
+--- orig/rsync.yo 2005-03-28 20:56:55
+++ rsync.yo 2005-02-11 20:36:38
@@ -308,6 +308,7 @@ to the detailed description below for a
--suffix=SUFFIX backup suffix (default ~ w/o --backup-dir)
-d, --dirs transfer directories without recursing
-l, --links copy symlinks as symlinks
-L, --copy-links transform symlink into referent file/dir
-@@ -564,6 +565,14 @@ should not use this option to update fil
+@@ -565,6 +566,14 @@ should not use this option to update fil
rsync will be unable to update a file in-place that is not writable by the
receiving user.
dit(bf(-d, --dirs)) Tell the sending side to include any directories that
are encountered. Unlike bf(--recursive), a directory's contents are not copied
unless the directory was specified on the command-line as either "." or a
---- orig/sender.c 2005-03-16 02:19:30
+--- orig/sender.c 2005-03-28 20:56:55
+++ sender.c 2005-03-16 02:25:18
@@ -28,6 +28,7 @@ extern int log_format_has_i;
extern int daemon_log_format_has_i;
if (s->count == 0)
return(s);
-@@ -235,6 +243,7 @@ void send_files(struct file_list *flist,
+@@ -227,6 +235,7 @@ void send_files(struct file_list *flist,
/* For inplace: redo phase turns off the backup
* flag so that we do a regular inplace send. */
make_backups = 0;
file->length = st.st_size;
file->mode = st.st_mode;
file->uid = st.st_uid;
---- orig/generator.c 2005-03-17 09:05:21
+--- orig/generator.c 2005-03-29 01:05:12
+++ generator.c 2004-11-03 23:02:12
-@@ -373,7 +373,7 @@ static int unchanged_file(char *fn, stru
+@@ -372,7 +372,7 @@ static int unchanged_file(char *fn, stru
if (ignore_times)
return 0;
}
-@@ -838,7 +838,7 @@ static void recv_generator(char *fname,
+@@ -837,7 +837,7 @@ static void recv_generator(char *fname,
}
if (update_only && statret == 0
if (verbose > 1)
rprintf(FINFO, "%s is newer\n", safe_fname(fname));
return;
---- orig/options.c 2005-03-24 16:41:46
+--- orig/options.c 2005-03-28 20:56:55
+++ options.c 2005-02-21 10:53:28
@@ -50,6 +50,7 @@ int preserve_uid = 0;
int preserve_gid = 0;
rprintf(F," -O, --omit-dir-times omit directories when preserving times\n");
rprintf(F," -S, --sparse handle sparse files efficiently\n");
rprintf(F," -n, --dry-run show what would have been transferred\n");
-@@ -409,6 +411,7 @@ static struct poptOption long_options[]
+@@ -410,6 +412,7 @@ static struct poptOption long_options[]
{"devices", 'D', POPT_ARG_NONE, &preserve_devices, 0, 0, 0 },
{"times", 't', POPT_ARG_NONE, &preserve_times, 0, 0, 0 },
{"omit-dir-times", 'O', POPT_ARG_VAL, &omit_dir_times, 2, 0, 0 },
{"checksum", 'c', POPT_ARG_NONE, &always_checksum, 0, 0, 0 },
{"verbose", 'v', POPT_ARG_NONE, 0, 'v', 0, 0 },
{"quiet", 'q', POPT_ARG_NONE, 0, 'q', 0, 0 },
-@@ -1272,6 +1275,8 @@ void server_options(char **args,int *arg
+@@ -1273,6 +1276,8 @@ void server_options(char **args,int *arg
argstr[x++] = 'D';
if (preserve_times)
argstr[x++] = 't';
}
change_uid = am_root && preserve_uid && st->st_uid != file->uid;
---- orig/rsync.h 2005-03-16 02:19:30
+--- orig/rsync.h 2005-03-28 20:56:55
+++ rsync.h 2004-07-03 20:15:41
@@ -54,6 +54,7 @@
#define XMIT_HAS_IDEV_DATA (1<<9)
uid_t uid;
gid_t gid;
mode_t mode;
---- orig/rsync.yo 2005-03-16 02:19:30
+--- orig/rsync.yo 2005-03-28 20:56:55
+++ rsync.yo 2005-01-24 01:57:18
@@ -321,6 +321,7 @@ to the detailed description below for a
-D, --devices preserve devices (root only)
-S, --sparse handle sparse files efficiently
-n, --dry-run show what would have been transferred
-W, --whole-file copy files whole (without rsync algorithm)
-@@ -654,6 +655,11 @@ it is preserving modification times (see
+@@ -655,6 +656,11 @@ it is preserving modification times (see
the directories on the receiving side, it is a good idea to use bf(-O).
This option is inferred if you use bf(--backup) without bf(--backup-dir).
+ deleting = 0;
+ return ret;
+}
---- orig/generator.c 2005-03-17 09:05:21
+--- orig/generator.c 2005-03-29 01:05:12
+++ generator.c 2005-03-11 11:22:38
-@@ -84,6 +84,9 @@ extern dev_t filesystem_dev;
+@@ -85,6 +85,9 @@ extern dev_t filesystem_dev;
extern char *backup_dir;
extern char *backup_suffix;
extern int backup_suffix_len;
extern struct file_list *the_file_list;
extern struct filter_list_struct server_filter_list;
-@@ -92,10 +95,14 @@ int allowed_lull = 0;
+@@ -93,10 +96,14 @@ int allowed_lull = 0;
static int deletion_count = 0; /* used to implement --max-delete */
}
-@@ -112,8 +119,8 @@ static int delete_item(char *fname, int
+@@ -113,8 +120,8 @@ static int delete_item(char *fname, int
if (!S_ISDIR(mode)) {
if (max_delete && ++deletion_count > max_delete)
return 0;
else
ok = robust_unlink(fname) == 0;
if (ok) {
-@@ -136,9 +143,9 @@ static int delete_item(char *fname, int
+@@ -137,9 +144,9 @@ static int delete_item(char *fname, int
|| (dry_run && zap_dir)) {
ok = 0;
errno = ENOTEMPTY;
else
ok = do_rmdir(fname) == 0;
if (ok) {
---- orig/options.c 2005-03-24 16:41:46
+--- orig/options.c 2005-03-28 20:56:55
+++ options.c 2005-03-01 01:25:39
@@ -127,10 +127,14 @@ int no_detach
int write_batch = 0;
rprintf(F," -u, --update skip files that are newer on the receiver\n");
rprintf(F," --inplace update destination files in-place (SEE MAN PAGE)\n");
rprintf(F," -d, --dirs transfer directories without recursing\n");
-@@ -366,6 +374,7 @@ static struct poptOption long_options[]
+@@ -367,6 +375,7 @@ static struct poptOption long_options[]
/* longName, shortName, argInfo, argPtr, value, descrip, argDesc */
{"version", 0, POPT_ARG_NONE, 0, OPT_VERSION, 0, 0},
{"suffix", 0, POPT_ARG_STRING, &backup_suffix, 0, 0, 0 },
{"rsync-path", 0, POPT_ARG_STRING, &rsync_path, 0, 0, 0 },
{"password-file", 0, POPT_ARG_STRING, &password_file, 0, 0, 0 },
{"ignore-times", 'I', POPT_ARG_NONE, &ignore_times, 0, 0, 0 },
-@@ -446,6 +455,7 @@ static struct poptOption long_options[]
+@@ -447,6 +456,7 @@ static struct poptOption long_options[]
{"itemize-changes", 'i', POPT_ARG_NONE, &itemize_changes, 0, 0, 0 },
{"bwlimit", 0, POPT_ARG_INT, &bwlimit, 0, 0, 0 },
{"backup-dir", 0, POPT_ARG_STRING, &backup_dir, 0, 0, 0 },
{"hard-links", 'H', POPT_ARG_NONE, &preserve_hard_links, 0, 0, 0 },
{"read-batch", 0, POPT_ARG_STRING, &batch_name, OPT_READ_BATCH, 0, 0 },
{"write-batch", 0, POPT_ARG_STRING, &batch_name, OPT_WRITE_BATCH, 0, 0 },
-@@ -1007,6 +1017,8 @@ int parse_arguments(int *argc, const cha
+@@ -1008,6 +1018,8 @@ int parse_arguments(int *argc, const cha
partial_dir = sanitize_path(NULL, partial_dir, NULL, 0);
if (backup_dir)
backup_dir = sanitize_path(NULL, backup_dir, NULL, 0);
}
if (server_filter_list.head && !am_sender) {
struct filter_list_struct *elp = &server_filter_list;
-@@ -1041,6 +1053,14 @@ int parse_arguments(int *argc, const cha
+@@ -1042,6 +1054,14 @@ int parse_arguments(int *argc, const cha
return 0;
}
}
}
if (!backup_suffix)
-@@ -1052,6 +1072,16 @@ int parse_arguments(int *argc, const cha
+@@ -1053,6 +1073,16 @@ int parse_arguments(int *argc, const cha
backup_suffix);
return 0;
}
if (backup_dir) {
backup_dir_len = strlcpy(backup_dir_buf, backup_dir, sizeof backup_dir_buf);
backup_dir_remainder = sizeof backup_dir_buf - backup_dir_len;
-@@ -1073,6 +1103,31 @@ int parse_arguments(int *argc, const cha
+@@ -1074,6 +1104,31 @@ int parse_arguments(int *argc, const cha
"--suffix cannot be a null string without --backup-dir\n");
return 0;
}
if (make_backups && !backup_dir)
omit_dir_times = 1;
-@@ -1351,6 +1406,10 @@ void server_options(char **args,int *arg
+@@ -1352,6 +1407,10 @@ void server_options(char **args,int *arg
args[ac++] = "--backup-dir";
args[ac++] = backup_dir;
}
/* Only send --suffix if it specifies a non-default value. */
if (strcmp(backup_suffix, backup_dir ? "" : BACKUP_SUFFIX) != 0) {
-@@ -1359,7 +1418,13 @@ void server_options(char **args,int *arg
+@@ -1360,7 +1419,13 @@ void server_options(char **args,int *arg
goto oom;
args[ac++] = arg;
}
file->uid = st.st_uid;
file->gid = st.st_gid;
---- orig/options.c 2005-03-24 16:41:46
+--- orig/options.c 2005-03-28 20:56:55
+++ options.c 2005-03-01 01:26:56
@@ -140,6 +140,7 @@ char *log_format = NULL;
char *password_file = NULL;
rprintf(F," -S, --sparse handle sparse files efficiently\n");
rprintf(F," -n, --dry-run show what would have been transferred\n");
rprintf(F," -W, --whole-file copy files whole (without rsync algorithm)\n");
-@@ -406,6 +410,7 @@ static struct poptOption long_options[]
+@@ -407,6 +411,7 @@ static struct poptOption long_options[]
{"perms", 'p', POPT_ARG_NONE, &preserve_perms, 0, 0, 0 },
{"owner", 'o', POPT_ARG_NONE, &preserve_uid, 0, 0, 0 },
{"group", 'g', POPT_ARG_NONE, &preserve_gid, 0, 0, 0 },
{"devices", 'D', POPT_ARG_NONE, &preserve_devices, 0, 0, 0 },
{"times", 't', POPT_ARG_NONE, &preserve_times, 0, 0, 0 },
{"omit-dir-times", 'O', POPT_ARG_VAL, &omit_dir_times, 2, 0, 0 },
-@@ -1076,6 +1081,13 @@ int parse_arguments(int *argc, const cha
+@@ -1077,6 +1082,13 @@ int parse_arguments(int *argc, const cha
if (make_backups && !backup_dir)
omit_dir_times = 1;
if (log_format) {
if (strstr(log_format, "%i") != NULL)
log_format_has_i = 1;
-@@ -1438,6 +1450,11 @@ void server_options(char **args,int *arg
+@@ -1439,6 +1451,11 @@ void server_options(char **args,int *arg
}
}
if (files_from && (!am_sender || filesfrom_host)) {
if (filesfrom_host) {
args[ac++] = "--files-from";
---- orig/rsync.yo 2005-03-16 02:19:30
+--- orig/rsync.yo 2005-03-28 20:56:55
+++ rsync.yo 2005-01-24 01:48:43
@@ -321,6 +321,7 @@ to the detailed description below for a
-D, --devices preserve devices (root only)
-S, --sparse handle sparse files efficiently
-n, --dry-run show what would have been transferred
-W, --whole-file copy files whole (without rsync algorithm)
-@@ -654,6 +655,14 @@ it is preserving modification times (see
+@@ -655,6 +656,14 @@ it is preserving modification times (see
the directories on the receiving side, it is a good idea to use bf(-O).
This option is inferred if you use bf(--backup) without bf(--backup-dir).
[Patched update to have context and apply to latest CVS source.]
---- orig/generator.c 2005-03-17 09:05:21
+--- orig/generator.c 2005-03-29 01:05:12
+++ generator.c 2004-11-11 22:15:27
-@@ -54,6 +54,7 @@ extern int inplace;
+@@ -55,6 +55,7 @@ extern int inplace;
extern int make_backups;
extern int csum_length;
extern int ignore_times;
extern int size_only;
extern OFF_T max_size;
extern int io_timeout;
-@@ -355,6 +356,8 @@ void itemize(struct file_struct *file, i
+@@ -354,6 +355,8 @@ void itemize(struct file_struct *file, i
/* Perform our quick-check heuristic for determining if a file is unchanged. */
static int unchanged_file(char *fn, struct file_struct *file, STRUCT_STAT *st)
{
if (st->st_size != file->length)
return 0;
---- orig/options.c 2005-03-24 16:41:46
+--- orig/options.c 2005-03-28 20:56:55
+++ options.c 2005-01-28 19:14:15
@@ -89,6 +89,7 @@ int keep_partial = 0;
int safe_symlinks = 0;
rprintf(F," --modify-window=NUM compare mod-times with reduced accuracy\n");
rprintf(F," -T, --temp-dir=DIR create temporary files in directory DIR\n");
rprintf(F," -y, --fuzzy find similar file for basis if no dest file\n");
-@@ -370,6 +372,7 @@ static struct poptOption long_options[]
+@@ -371,6 +373,7 @@ static struct poptOption long_options[]
{"password-file", 0, POPT_ARG_STRING, &password_file, 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 },
{"modify-window", 0, POPT_ARG_INT, &modify_window, OPT_MODIFY_WINDOW, 0, 0 },
{"one-file-system", 'x', POPT_ARG_NONE, &one_file_system, 0, 0, 0 },
{"existing", 0, POPT_ARG_NONE, &only_existing, 0, 0, 0 },
-@@ -1378,6 +1381,9 @@ void server_options(char **args,int *arg
+@@ -1379,6 +1382,9 @@ void server_options(char **args,int *arg
if (size_only)
args[ac++] = "--size-only";
if (modify_window_set) {
if (asprintf(&arg, "--modify-window=%d", modify_window) < 0)
goto oom;
---- orig/rsync.yo 2005-03-16 02:19:30
+--- orig/rsync.yo 2005-03-28 20:56:55
+++ rsync.yo 2005-02-11 22:49:10
@@ -349,6 +349,7 @@ to the detailed description below for a
--timeout=TIME set I/O timeout in seconds
--modify-window=NUM compare mod-times with reduced accuracy
-T, --temp-dir=DIR create temporary files in directory DIR
-y, --fuzzy find similar file for basis if no dest file
-@@ -445,6 +446,12 @@ regardless of timestamp. This is useful
+@@ -446,6 +447,12 @@ regardless of timestamp. This is useful
after using another mirroring system which may not preserve timestamps
exactly.
+ if (verbose > 2)
+ rprintf(FINFO, "Converted filename: %s -> %s\n", src, dest);
+}
---- orig/generator.c 2005-03-17 09:05:21
+--- orig/generator.c 2005-03-29 01:05:12
+++ generator.c 2005-03-05 00:29:37
-@@ -581,7 +581,13 @@ static int phase = 0;
+@@ -580,7 +580,13 @@ static int phase = 0;
* start sending checksums.
*
* Note that f_out is set to -1 when doing final directory-permission and
static void recv_generator(char *fname, struct file_struct *file, int ndx,
int itemizing, int maybe_PERMS_REPORT,
enum logcode code, int f_out)
---- orig/log.c 2005-03-16 02:19:30
+--- orig/log.c 2005-03-27 05:58:51
+++ log.c 2004-07-03 20:18:02
@@ -64,6 +64,7 @@ struct {
{ RERR_STREAMIO , "error in rsync protocol data stream" },
if (dir)
free(dir);
---- orig/options.c 2005-03-24 16:41:46
+--- orig/options.c 2005-03-28 20:56:55
+++ options.c 2005-02-14 02:50:32
@@ -137,6 +137,7 @@ char *basis_dir[MAX_BASIS_DIRS+1];
char *config_file = NULL;
rprintf(F," -z, --compress compress file data during the transfer\n");
rprintf(F," -C, --cvs-exclude auto-ignore files the same way CVS does\n");
rprintf(F," -f, --filter=RULE add a file-filtering RULE\n");
-@@ -429,6 +431,7 @@ static struct poptOption long_options[]
+@@ -430,6 +432,7 @@ static struct poptOption long_options[]
{"copy-dest", 0, POPT_ARG_STRING, 0, OPT_COPY_DEST, 0, 0 },
{"link-dest", 0, POPT_ARG_STRING, 0, OPT_LINK_DEST, 0, 0 },
{"fuzzy", 'y', POPT_ARG_NONE, &fuzzy_basis, 0, 0, 0 },
This patch from Sami Farin lets you specify --fsync if you want fsync()
to be called on every file we write.
---- orig/options.c 2005-03-24 16:41:46
+--- orig/options.c 2005-03-28 20:56:55
+++ options.c 2005-01-28 19:30:47
@@ -39,6 +39,7 @@ int make_backups = 0;
**/
rprintf(F," --numeric-ids don't map uid/gid values by user/group name\n");
rprintf(F," --timeout=TIME set I/O timeout in seconds\n");
rprintf(F," -I, --ignore-times don't skip files that match in size and mod-time\n");
-@@ -391,6 +393,7 @@ static struct poptOption long_options[]
+@@ -392,6 +394,7 @@ static struct poptOption long_options[]
{"safe-links", 0, POPT_ARG_NONE, &safe_symlinks, 0, 0, 0 },
{"help", 'h', POPT_ARG_NONE, 0, 'h', 0, 0 },
{"backup", 'b', POPT_ARG_NONE, &make_backups, 0, 0, 0 },
{"dry-run", 'n', POPT_ARG_NONE, &dry_run, 0, 0, 0 },
{"sparse", 'S', POPT_ARG_NONE, &sparse_files, 0, 0, 0 },
{"cvs-exclude", 'C', POPT_ARG_NONE, &cvs_exclude, 0, 0, 0 },
-@@ -1426,6 +1429,9 @@ void server_options(char **args,int *arg
+@@ -1427,6 +1430,9 @@ void server_options(char **args,int *arg
args[ac++] = tmpdir;
}
case '?':
/* Match anything but '/'. */
if (*text == '/')
---- orig/options.c 2005-03-24 16:41:46
+--- orig/options.c 2005-03-28 20:56:55
+++ options.c 2004-10-14 17:22:51
@@ -100,6 +100,7 @@ int max_delete = 0;
OFF_T max_size = 0;
rprintf(F," --version print version number\n");
rprintf(F," --port=PORT specify double-colon alternate port number\n");
rprintf(F," --blocking-io use blocking I/O for the remote shell\n");
-@@ -388,6 +390,7 @@ static struct poptOption long_options[]
+@@ -389,6 +391,7 @@ static struct poptOption long_options[]
{"include", 0, POPT_ARG_STRING, 0, OPT_INCLUDE, 0, 0 },
{"exclude-from", 0, POPT_ARG_STRING, 0, OPT_EXCLUDE_FROM, 0, 0 },
{"include-from", 0, POPT_ARG_STRING, 0, OPT_INCLUDE_FROM, 0, 0 },
{"safe-links", 0, POPT_ARG_NONE, &safe_symlinks, 0, 0, 0 },
{"help", 'h', POPT_ARG_NONE, 0, 'h', 0, 0 },
{"backup", 'b', POPT_ARG_NONE, &make_backups, 0, 0, 0 },
-@@ -1390,6 +1393,9 @@ void server_options(char **args,int *arg
+@@ -1391,6 +1394,9 @@ void server_options(char **args,int *arg
args[ac++] = arg;
}
+}
+
+#endif
---- orig/options.c 2005-03-24 16:41:46
+--- orig/options.c 2005-03-28 20:56:55
+++ options.c 2005-03-01 01:27:55
@@ -140,6 +140,7 @@ char *log_format = NULL;
char *password_file = NULL;
rprintf(F," -z, --compress compress file data during the transfer\n");
rprintf(F," -C, --cvs-exclude auto-ignore files the same way CVS does\n");
rprintf(F," -f, --filter=RULE add a file-filtering RULE\n");
-@@ -359,7 +361,7 @@ void usage(enum logcode F)
+@@ -360,7 +362,7 @@ void usage(enum logcode F)
enum {OPT_VERSION = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
OPT_FILTER, OPT_COMPARE_DEST, OPT_COPY_DEST, OPT_LINK_DEST,
OPT_INCLUDE, OPT_INCLUDE_FROM, OPT_MODIFY_WINDOW,
OPT_REFUSED_BASE = 9000};
static struct poptOption long_options[] = {
-@@ -428,6 +430,7 @@ static struct poptOption long_options[]
+@@ -429,6 +431,7 @@ static struct poptOption long_options[]
{"compare-dest", 0, POPT_ARG_STRING, 0, OPT_COMPARE_DEST, 0, 0 },
{"copy-dest", 0, POPT_ARG_STRING, 0, OPT_COPY_DEST, 0, 0 },
{"link-dest", 0, POPT_ARG_STRING, 0, OPT_LINK_DEST, 0, 0 },
{"fuzzy", 'y', POPT_ARG_NONE, &fuzzy_basis, 0, 0, 0 },
/* TODO: Should this take an optional int giving the compression level? */
{"compress", 'z', POPT_ARG_NONE, &do_compression, 0, 0, 0 },
-@@ -862,6 +865,21 @@ int parse_arguments(int *argc, const cha
+@@ -863,6 +866,21 @@ int parse_arguments(int *argc, const cha
basis_dir[basis_dir_cnt++] = (char *)arg;
break;
default:
/* A large opt value means that set_refuse_options()
* turned this option off. */
-@@ -1438,6 +1456,11 @@ void server_options(char **args,int *arg
+@@ -1439,6 +1457,11 @@ void server_options(char **args,int *arg
}
}
if (ret < 0) {
rsyserr(FERROR, errno, "%s %s -> \"%s\"",
ret == -2 ? "copy" : "rename",
---- orig/rsync.h 2005-03-16 02:19:30
+--- orig/rsync.h 2005-03-28 20:56:55
+++ rsync.h 2004-07-03 20:20:15
@@ -632,6 +632,14 @@ struct stats {
int current_file_index;
#include "byteorder.h"
#include "lib/mdfour.h"
---- orig/rsync.yo 2005-03-16 02:19:30
+--- orig/rsync.yo 2005-03-28 20:56:55
+++ rsync.yo 2005-02-13 06:58:47
@@ -355,6 +355,7 @@ to the detailed description below for a
--compare-dest=DIR also compare received files relative to DIR
#else
linkname_len = 0;
#endif
---- orig/options.c 2005-03-24 16:41:46
+--- orig/options.c 2005-03-28 20:56:55
+++ options.c 2005-01-28 19:33:24
@@ -43,6 +43,7 @@ int archive_mode = 0;
int keep_dirlinks = 0;
rprintf(F," -L, --copy-links transform symlink into referent file/dir\n");
rprintf(F," --copy-unsafe-links only \"unsafe\" symlinks are transformed\n");
rprintf(F," --safe-links ignore symlinks that point outside the source tree\n");
-@@ -398,6 +400,7 @@ static struct poptOption long_options[]
+@@ -399,6 +401,7 @@ static struct poptOption long_options[]
{"inplace", 0, POPT_ARG_NONE, &inplace, 0, 0, 0 },
{"dirs", 'd', POPT_ARG_VAL, &xfer_dirs, 2, 0, 0 },
{"links", 'l', POPT_ARG_NONE, &preserve_links, 0, 0, 0 },
{"copy-links", 'L', POPT_ARG_NONE, ©_links, 0, 0, 0 },
{"keep-dirlinks", 'K', POPT_ARG_NONE, &keep_dirlinks, 0, 0, 0 },
{"whole-file", 'W', POPT_ARG_VAL, &whole_file, 1, 0, 0 },
---- orig/rsync.yo 2005-03-16 02:19:30
+--- orig/rsync.yo 2005-03-28 20:56:55
+++ rsync.yo 2005-01-28 19:33:40
@@ -310,6 +310,7 @@ to the detailed description below for a
--inplace update destination files in-place
}
} else
write_arg(fd, p);
---- orig/generator.c 2005-03-17 09:05:21
+--- orig/generator.c 2005-03-29 01:05:12
+++ generator.c 2005-03-24 07:07:12
@@ -25,6 +25,7 @@
extern int log_format_has_i;
extern int log_format_has_o_or_i;
extern int daemon_log_format_has_i;
-@@ -1002,7 +1003,7 @@ prepare_to_open:
+@@ -1001,7 +1002,7 @@ prepare_to_open:
statret = 0;
}
goto notify_others;
if (fuzzy_basis) {
-@@ -1074,7 +1075,7 @@ notify_others:
+@@ -1073,7 +1074,7 @@ notify_others:
fuzzy_file ? fuzzy_file->basename : NULL);
}
if (preserve_hard_links && file->link_u.links)
hard_link_cluster(file, ndx, itemizing, code);
return;
-@@ -1122,9 +1123,9 @@ void generate_files(int f_out, struct fi
+@@ -1121,9 +1122,9 @@ void generate_files(int f_out, struct fi
maybe_PERMS_REPORT = log_format_has_i ? 0 : PERMS_REPORT;
code = daemon_log_format_has_i ? 0 : FLOG;
} else if (am_daemon) {
if (am_daemon && !am_server)
return daemon_main();
---- orig/options.c 2005-03-24 16:41:46
+--- orig/options.c 2005-03-28 20:56:55
+++ options.c 2005-03-24 07:07:13
@@ -53,6 +53,7 @@ int omit_dir_times = 0;
int update_only = 0;
rprintf(F," --write-batch=FILE write a batched update to FILE\n");
+ rprintf(F," --only-write-batch=FILE like --write-batch but w/o updating destination\n");
rprintf(F," --read-batch=FILE read a batched update from FILE\n");
+ rprintf(F," --protocol=NUM force an older protocol version to be used\n");
#ifdef INET6
- rprintf(F," -4, --ipv4 prefer IPv4\n");
-@@ -359,7 +361,8 @@ void usage(enum logcode F)
+@@ -360,7 +362,8 @@ void usage(enum logcode F)
enum {OPT_VERSION = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
OPT_FILTER, OPT_COMPARE_DEST, OPT_COPY_DEST, OPT_LINK_DEST,
OPT_INCLUDE, OPT_INCLUDE_FROM, OPT_MODIFY_WINDOW,
OPT_REFUSED_BASE = 9000};
static struct poptOption long_options[] = {
-@@ -449,6 +452,7 @@ static struct poptOption long_options[]
+@@ -450,6 +453,7 @@ static struct poptOption long_options[]
{"hard-links", 'H', POPT_ARG_NONE, &preserve_hard_links, 0, 0, 0 },
{"read-batch", 0, POPT_ARG_STRING, &batch_name, OPT_READ_BATCH, 0, 0 },
{"write-batch", 0, POPT_ARG_STRING, &batch_name, OPT_WRITE_BATCH, 0, 0 },
{"files-from", 0, POPT_ARG_STRING, &files_from, 0, 0, 0 },
{"from0", '0', POPT_ARG_NONE, &eol_nulls, 0, 0, 0},
{"no-implied-dirs", 0, POPT_ARG_VAL, &implied_dirs, 0, 0, 0 },
-@@ -790,6 +794,11 @@ int parse_arguments(int *argc, const cha
+@@ -791,6 +795,11 @@ int parse_arguments(int *argc, const cha
write_batch = 1;
break;
case OPT_READ_BATCH:
/* batch_name is already set */
read_batch = 1;
-@@ -900,7 +909,7 @@ int parse_arguments(int *argc, const cha
+@@ -901,7 +910,7 @@ int parse_arguments(int *argc, const cha
"--write-batch and --read-batch can not be used together\n");
return 0;
}
if (am_server) {
rprintf(FINFO,
"ignoring --%s-batch option sent to server\n",
-@@ -1092,6 +1101,9 @@ int parse_arguments(int *argc, const cha
+@@ -1093,6 +1102,9 @@ int parse_arguments(int *argc, const cha
&& !am_server)
verbose = 1;
if (verbose && !log_format) {
log_format = "%n%L";
log_before_transfer = !am_server;
-@@ -1245,7 +1257,7 @@ void server_options(char **args,int *arg
+@@ -1246,7 +1258,7 @@ void server_options(char **args,int *arg
argstr[x++] = 'b';
if (update_only)
argstr[x++] = 'u';
argstr[x++] = 'n';
if (preserve_links)
argstr[x++] = 'l';
-@@ -1373,6 +1385,8 @@ void server_options(char **args,int *arg
+@@ -1374,6 +1386,8 @@ void server_options(char **args,int *arg
args[ac++] = "--delete-after";
if (force_delete)
args[ac++] = "--force";
if (read_batch) {
while (i > next_gen_i) {
---- orig/rsync.yo 2005-03-16 02:19:30
+--- orig/rsync.yo 2005-03-28 20:56:55
+++ rsync.yo 2005-03-27 05:13:01
@@ -379,6 +379,7 @@ to the detailed description below for a
--list-only list the files instead of copying them
--write-batch=FILE write a batched update to FILE
+ --only-write-batch=FILE like --write-batch but w/o updating dest
--read-batch=FILE read a batched update from FILE
+ --protocol=NUM force an older protocol version to be used
--checksum-seed=NUM set block/file checksum seed (advanced)
- -4, --ipv4 prefer IPv4
-@@ -1270,6 +1271,16 @@ dit(bf(--write-batch=FILE)) Record a fil
+@@ -1271,6 +1272,16 @@ dit(bf(--write-batch=FILE)) Record a fil
another identical destination with bf(--read-batch). See the "BATCH MODE"
section for details.
dit(bf(--read-batch=FILE)) Apply all of the changes stored in FILE, a
file previously generated by bf(--write-batch).
If em(FILE) is "-" the batch data will be read from standard input.
---- orig/sender.c 2005-03-16 02:19:30
+--- orig/sender.c 2005-03-28 20:56:55
+++ sender.c 2005-03-24 07:07:13
@@ -20,7 +20,7 @@
#include "rsync.h"
extern struct stats stats;
extern struct file_list *the_file_list;
extern char *log_format;
-@@ -216,6 +218,7 @@ void send_files(struct file_list *flist,
+@@ -208,6 +210,7 @@ void send_files(struct file_list *flist,
int save_make_backups = make_backups;
int itemizing = am_daemon ? daemon_log_format_has_i
: !am_server && log_format_has_i;
int i, j;
if (verbose > 2)
-@@ -238,7 +241,7 @@ void send_files(struct file_list *flist,
+@@ -230,7 +233,7 @@ void send_files(struct file_list *flist,
continue;
}
xname, &xlen);
if (iflags == ITEM_IS_NEW) /* no-op packet */
continue;
-@@ -274,10 +277,10 @@ void send_files(struct file_list *flist,
+@@ -266,10 +269,10 @@ void send_files(struct file_list *flist,
stats.num_transferred_files++;
stats.total_transferred_size += file->length;
xname, xlen);
continue;
}
-@@ -329,9 +332,9 @@ void send_files(struct file_list *flist,
+@@ -321,9 +324,9 @@ void send_files(struct file_list *flist,
safe_fname(fname), (double)st.st_size);
}
if (verbose > 2) {
rprintf(FINFO, "calling match_sums %s\n",
-@@ -345,7 +348,7 @@ void send_files(struct file_list *flist,
+@@ -337,7 +340,7 @@ void send_files(struct file_list *flist,
set_compression(fname);
AC_MSG_CHECKING([whether to call shutdown on all sockets])
case $host_os in
*cygwin* ) AC_MSG_RESULT(yes)
---- orig/options.c 2005-03-24 16:41:46
+--- orig/options.c 2005-03-28 20:56:55
+++ options.c 2005-03-01 01:34:42
@@ -157,6 +157,14 @@ int log_format_has_o_or_i = 0;
int always_checksum = 0;
#ifdef MAINTAINER_MODE
rprintf(f, " panic action: \"%s\"\n",
get_panic_action());
-@@ -349,6 +362,13 @@ void usage(enum logcode F)
+@@ -350,6 +363,13 @@ void usage(enum logcode F)
rprintf(F," -4, --ipv4 prefer IPv4\n");
rprintf(F," -6, --ipv6 prefer IPv6\n");
#endif
rprintf(F," -h, --help show this help screen\n");
rprintf(F,"\nUse \"rsync --daemon --help\" to see the daemon-mode command-line options.\n");
-@@ -359,7 +379,7 @@ void usage(enum logcode F)
+@@ -360,7 +380,7 @@ void usage(enum logcode F)
enum {OPT_VERSION = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
OPT_FILTER, OPT_COMPARE_DEST, OPT_COPY_DEST, OPT_LINK_DEST,
OPT_INCLUDE, OPT_INCLUDE_FROM, OPT_MODIFY_WINDOW,
OPT_REFUSED_BASE = 9000};
static struct poptOption long_options[] = {
-@@ -458,6 +478,13 @@ static struct poptOption long_options[]
+@@ -459,6 +479,13 @@ static struct poptOption long_options[]
{"ipv4", '4', POPT_ARG_VAL, &default_af_hint, AF_INET, 0, 0 },
{"ipv6", '6', POPT_ARG_VAL, &default_af_hint, AF_INET6, 0, 0 },
#endif
/* All these options switch us into daemon-mode option-parsing. */
{"address", 0, POPT_ARG_STRING, 0, OPT_DAEMON, 0, 0 },
{"config", 0, POPT_ARG_STRING, 0, OPT_DAEMON, 0, 0 },
-@@ -862,6 +889,12 @@ int parse_arguments(int *argc, const cha
+@@ -863,6 +890,12 @@ int parse_arguments(int *argc, const cha
basis_dir[basis_dir_cnt++] = (char *)arg;
break;
default:
/* A large opt value means that set_refuse_options()
* turned this option off. */
-@@ -1111,6 +1144,17 @@ int parse_arguments(int *argc, const cha
+@@ -1112,6 +1145,17 @@ int parse_arguments(int *argc, const cha
if (delay_updates && !partial_dir)
partial_dir = partialdir_for_delayupdate;
if (inplace) {
#ifdef HAVE_FTRUNCATE
if (partial_dir) {
-@@ -1478,11 +1522,28 @@ char *check_for_hostspec(char *s, char *
+@@ -1479,11 +1523,28 @@ char *check_for_hostspec(char *s, char *
{
char *p;
int not_host;
if ((p = strchr(s, '/')) != NULL) {
hostlen = p - s;
path = p + 1;
---- orig/rsync.h 2005-03-16 02:19:30
+--- orig/rsync.h 2005-03-28 20:56:55
+++ rsync.h 2004-10-08 21:01:33
@@ -32,6 +32,7 @@
+ preserve_gid = 2;
+ }
}
---- orig/options.c 2005-03-24 16:41:46
+--- orig/options.c 2005-03-28 20:56:55
+++ options.c 2004-09-09 01:59:08
-@@ -404,8 +404,8 @@ static struct poptOption long_options[]
+@@ -405,8 +405,8 @@ static struct poptOption long_options[]
{"no-whole-file", 0, POPT_ARG_VAL, &whole_file, 0, 0, 0 },
{"copy-unsafe-links",0, POPT_ARG_NONE, ©_unsafe_links, 0, 0, 0 },
{"perms", 'p', POPT_ARG_NONE, &preserve_perms, 0, 0, 0 },
{"devices", 'D', POPT_ARG_NONE, &preserve_devices, 0, 0, 0 },
{"times", 't', POPT_ARG_NONE, &preserve_times, 0, 0, 0 },
{"omit-dir-times", 'O', POPT_ARG_VAL, &omit_dir_times, 2, 0, 0 },
-@@ -747,6 +747,14 @@ int parse_arguments(int *argc, const cha
+@@ -748,6 +748,14 @@ int parse_arguments(int *argc, const cha
usage(FINFO);
exit_cleanup(0);
case 'v':
verbose++;
break;
-@@ -949,8 +957,8 @@ int parse_arguments(int *argc, const cha
+@@ -950,8 +958,8 @@ int parse_arguments(int *argc, const cha
#endif
preserve_perms = 1;
preserve_times = 1;
preserve_devices = 1;
}
-@@ -1264,10 +1272,16 @@ void server_options(char **args,int *arg
+@@ -1265,10 +1273,16 @@ void server_options(char **args,int *arg
if (preserve_hard_links)
argstr[x++] = 'H';
while (1) {
struct file_struct *file;
---- orig/options.c 2005-03-24 16:41:46
+--- orig/options.c 2005-03-28 20:56:55
+++ options.c 2005-03-01 01:37:22
@@ -81,6 +81,7 @@ char *filesfrom_host = NULL;
int eol_nulls = 0;
rprintf(F," -b, --backup make backups (see --suffix & --backup-dir)\n");
rprintf(F," --backup-dir=DIR make backups into hierarchy based in DIR\n");
rprintf(F," --suffix=SUFFIX set backup suffix (default %s w/o --backup-dir)\n",BACKUP_SUFFIX);
-@@ -419,6 +421,7 @@ static struct poptOption long_options[]
+@@ -420,6 +422,7 @@ static struct poptOption long_options[]
{"list-only", 0, POPT_ARG_VAL, &list_only, 2, 0, 0 },
{"relative", 'R', POPT_ARG_VAL, &relative_paths, 1, 0, 0 },
{"no-relative", 0, POPT_ARG_VAL, &relative_paths, 0, 0, 0 },
{"rsh", 'e', POPT_ARG_STRING, &shell_cmd, 0, 0, 0 },
{"block-size", 'B', POPT_ARG_LONG, &block_size, 0, 0, 0 },
{"max-delete", 0, POPT_ARG_INT, &max_delete, 0, 0, 0 },
-@@ -913,6 +916,11 @@ int parse_arguments(int *argc, const cha
+@@ -914,6 +917,11 @@ int parse_arguments(int *argc, const cha
} else if (dry_run)
write_batch = 0;
}
if (read_batch && files_from) {
snprintf(err_buf, sizeof err_buf,
"--read-batch cannot be used with --files-from\n");
-@@ -1007,6 +1015,14 @@ int parse_arguments(int *argc, const cha
+@@ -1008,6 +1016,14 @@ int parse_arguments(int *argc, const cha
partial_dir = sanitize_path(NULL, partial_dir, NULL, 0);
if (backup_dir)
backup_dir = sanitize_path(NULL, backup_dir, NULL, 0);
}
if (server_filter_list.head && !am_sender) {
struct filter_list_struct *elp = &server_filter_list;
-@@ -1400,6 +1416,11 @@ void server_options(char **args,int *arg
+@@ -1401,6 +1417,11 @@ void server_options(char **args,int *arg
} else if (keep_partial)
args[ac++] = "--partial";
if (ignore_errors)
args[ac++] = "--ignore-errors";
---- orig/rsync.yo 2005-03-16 02:19:30
+--- orig/rsync.yo 2005-03-28 20:56:55
+++ rsync.yo 2005-02-22 18:20:24
@@ -303,6 +303,7 @@ to the detailed description below for a
-R, --relative use relative path names
-b, --backup make backups (see --suffix & --backup-dir)
--backup-dir=DIR make backups into hierarchy based in DIR
--suffix=SUFFIX backup suffix (default ~ w/o --backup-dir)
-@@ -510,6 +511,11 @@ the bf(--no-implied-dirs) option would o
+@@ -511,6 +512,11 @@ the bf(--no-implied-dirs) option would o
which means that if "/path" was a real directory on one machine and a
symlink of the other machine, rsync would not try to change this.
if (t - last_io >= io_timeout) {
if (!am_server && !am_daemon) {
rprintf(FERROR, "io timeout after %d seconds -- exiting\n",
---- orig/options.c 2005-03-24 16:41:46
+--- orig/options.c 2005-03-28 20:56:55
+++ options.c 2005-01-28 19:35:23
@@ -105,6 +105,7 @@ int checksum_seed = 0;
int inplace = 0;
+ rprintf(F," --time-limit=MINS Stop rsync after MINS minutes have elapsed\n");
rprintf(F," --write-batch=FILE write a batched update to FILE\n");
rprintf(F," --read-batch=FILE read a batched update from FILE\n");
- #ifdef INET6
-@@ -360,6 +363,7 @@ enum {OPT_VERSION = 1000, OPT_DAEMON, OP
+ rprintf(F," --protocol=NUM force an older protocol version to be used\n");
+@@ -361,6 +364,7 @@ enum {OPT_VERSION = 1000, OPT_DAEMON, OP
OPT_FILTER, OPT_COMPARE_DEST, OPT_COPY_DEST, OPT_LINK_DEST,
OPT_INCLUDE, OPT_INCLUDE_FROM, OPT_MODIFY_WINDOW,
OPT_READ_BATCH, OPT_WRITE_BATCH, OPT_TIMEOUT, OPT_MAX_SIZE,
OPT_REFUSED_BASE = 9000};
static struct poptOption long_options[] = {
-@@ -445,6 +449,8 @@ static struct poptOption long_options[]
+@@ -446,6 +450,8 @@ static struct poptOption long_options[]
{"log-format", 0, POPT_ARG_STRING, &log_format, 0, 0, 0 },
{"itemize-changes", 'i', POPT_ARG_NONE, &itemize_changes, 0, 0, 0 },
{"bwlimit", 0, POPT_ARG_INT, &bwlimit, 0, 0, 0 },
{"backup-dir", 0, POPT_ARG_STRING, &backup_dir, 0, 0, 0 },
{"hard-links", 'H', POPT_ARG_NONE, &preserve_hard_links, 0, 0, 0 },
{"read-batch", 0, POPT_ARG_STRING, &batch_name, OPT_READ_BATCH, 0, 0 },
-@@ -862,6 +868,36 @@ int parse_arguments(int *argc, const cha
+@@ -863,6 +869,36 @@ int parse_arguments(int *argc, const cha
basis_dir[basis_dir_cnt++] = (char *)arg;
break;
default:
/* A large opt value means that set_refuse_options()
* turned this option off. */
-@@ -1347,6 +1383,15 @@ void server_options(char **args,int *arg
+@@ -1348,6 +1384,15 @@ void server_options(char **args,int *arg
args[ac++] = arg;
}
if (backup_dir) {
args[ac++] = "--backup-dir";
args[ac++] = backup_dir;
---- orig/rsync.yo 2005-03-16 02:19:30
+--- orig/rsync.yo 2005-03-28 20:56:55
+++ rsync.yo 2005-02-01 10:46:35
@@ -378,6 +378,8 @@ to the detailed description below for a
--password-file=FILE read password from FILE
+ --time-limit=MINS Stop rsync after MINS minutes have elapsed
--write-batch=FILE write a batched update to FILE
--read-batch=FILE read a batched update from FILE
- --checksum-seed=NUM set block/file checksum seed (advanced)
-@@ -1266,6 +1268,19 @@ transfer was too fast, it will wait befo
+ --protocol=NUM force an older protocol version to be used
+@@ -1267,6 +1269,19 @@ transfer was too fast, it will wait befo
result is an average transfer rate equaling the specified limit. A value
of zero specifies no limit.