./configure (optional if already run)
make
-based-on: 00dd50a00c00da4824b3aa5fe2b2f82baffca071
+based-on: a1cc50ba96d212c0647a91bf56e3de25eb35bd56
diff --git a/acls.c b/acls.c
--- a/acls.c
+++ b/acls.c
Fix a bug that could lose some bits when stripping some (supposedly)
superfluous ACL info.
-based-on: 00dd50a00c00da4824b3aa5fe2b2f82baffca071
+based-on: a1cc50ba96d212c0647a91bf56e3de25eb35bd56
diff --git a/lib/sysacls.c b/lib/sysacls.c
--- a/lib/sysacls.c
+++ b/lib/sysacls.c
./configure (optional if already run)
make
-based-on: 00dd50a00c00da4824b3aa5fe2b2f82baffca071
+based-on: a1cc50ba96d212c0647a91bf56e3de25eb35bd56
diff --git a/generator.c b/generator.c
--- a/generator.c
+++ b/generator.c
diff --git a/options.c b/options.c
--- a/options.c
+++ b/options.c
-@@ -971,7 +971,8 @@ static struct poptOption long_options[] = {
+@@ -965,7 +965,8 @@ static struct poptOption long_options[] = {
{"no-i", 0, POPT_ARG_VAL, &itemize_changes, 0, 0, 0 },
{"bwlimit", 0, POPT_ARG_STRING, &bwlimit_arg, OPT_BWLIMIT, 0, 0 },
{"no-bwlimit", 0, POPT_ARG_VAL, &bwlimit, 0, 0, 0 },
{"no-backup", 0, POPT_ARG_VAL, &make_backups, 0, 0, 0 },
{"backup-dir", 0, POPT_ARG_STRING, &backup_dir, 0, 0, 0 },
{"suffix", 0, POPT_ARG_STRING, &backup_suffix, 0, 0, 0 },
-@@ -2727,6 +2728,10 @@ void server_options(char **args, int *argc_p)
+@@ -2721,6 +2722,10 @@ void server_options(char **args, int *argc_p)
}
if (am_sender) {
--backup-dir=DIR make backups into hierarchy based in DIR
--suffix=SUFFIX backup suffix (default ~ w/o --backup-dir)
--update, -u skip files that are newer on the receiver
-@@ -842,6 +843,13 @@ your home directory (remove the '=' for that).
+@@ -839,6 +840,13 @@ your home directory (remove the '=' for that).
trailing inclusion/exclusion of `*`, the auto-added rule would never be
reached).
char *sockopts = NULL;
char *usermap = NULL;
char *groupmap = NULL;
-@@ -975,7 +981,9 @@ static struct poptOption long_options[] = {
+@@ -969,7 +975,9 @@ static struct poptOption long_options[] = {
{"backup-deleted", 0, POPT_ARG_VAL, &make_backups, 1, 0, 0 },
{"no-backup", 0, POPT_ARG_VAL, &make_backups, 0, 0, 0 },
{"backup-dir", 0, POPT_ARG_STRING, &backup_dir, 0, 0, 0 },
{"list-only", 0, POPT_ARG_VAL, &list_only, 2, 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 },
-@@ -2191,6 +2199,8 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2185,6 +2193,8 @@ int parse_arguments(int *argc_p, const char ***argv_p)
tmpdir = sanitize_path(NULL, tmpdir, NULL, 0, SP_DEFAULT);
if (backup_dir)
backup_dir = sanitize_path(NULL, backup_dir, NULL, 0, SP_DEFAULT);
}
if (daemon_filter_list.head && !am_sender) {
filter_rule_list *elp = &daemon_filter_list;
-@@ -2212,6 +2222,14 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2206,6 +2216,14 @@ int parse_arguments(int *argc_p, const char ***argv_p)
if (check_filter(elp, FLOG, dir, 1) < 0)
goto options_rejected;
}
}
if (!backup_suffix)
-@@ -2223,6 +2241,20 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2217,6 +2235,20 @@ int parse_arguments(int *argc_p, const char ***argv_p)
backup_suffix);
return 0;
}
if (backup_dir) {
size_t len;
make_backups = 1; /* --backup-dir implies --backup */
-@@ -2259,6 +2291,34 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2253,6 +2285,34 @@ int parse_arguments(int *argc_p, const char ***argv_p)
"P *%s", backup_suffix);
parse_filter_str(&filter_list, backup_dir_buf, rule_template(0), 0);
}
if (preserve_times) {
preserve_times = PRESERVE_FILE_TIMES;
-@@ -2702,6 +2762,10 @@ void server_options(char **args, int *argc_p)
+@@ -2696,6 +2756,10 @@ void server_options(char **args, int *argc_p)
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) {
-@@ -2710,6 +2774,14 @@ void server_options(char **args, int *argc_p)
+@@ -2704,6 +2768,14 @@ void server_options(char **args, int *argc_p)
goto oom;
args[ac++] = arg;
}
./configure (optional if already run)
make
-based-on: 00dd50a00c00da4824b3aa5fe2b2f82baffca071
+based-on: a1cc50ba96d212c0647a91bf56e3de25eb35bd56
diff --git a/errcode.h b/errcode.h
--- a/errcode.h
+++ b/errcode.h
./configure (optional if already run)
make
-based-on: feb2fff894fff1509fd132bbe80f123d28fcea72
+based-on: a1cc50ba96d212c0647a91bf56e3de25eb35bd56
diff --git a/clientserver.c b/clientserver.c
--- a/clientserver.c
+++ b/clientserver.c
diff --git a/loadparm.c b/loadparm.c
--- a/loadparm.c
+++ b/loadparm.c
-@@ -399,6 +399,10 @@ static struct enum_list enum_csum_modes[] = {
+@@ -167,6 +167,10 @@ static struct enum_list enum_checksum_files[] = {
{ CSF_IGNORE_FILES, "none" },
{ CSF_LAX_MODE, "lax" },
{ CSF_STRICT_MODE, "strict" },
diff --git a/options.c b/options.c
--- a/options.c
+++ b/options.c
-@@ -1761,7 +1761,15 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -1755,7 +1755,15 @@ int parse_arguments(int *argc_p, const char ***argv_p)
case OPT_SUMFILES:
arg = poptGetOptArg(pc);
diff --git a/rsync.1.md b/rsync.1.md
--- a/rsync.1.md
+++ b/rsync.1.md
-@@ -708,9 +708,13 @@ your home directory (remove the '=' for that).
+@@ -705,9 +705,13 @@ your home directory (remove the '=' for that).
The MODE value is either "lax", for relaxed checking (which compares size
and mtime), "strict" (which also compares ctime and inode), or "none" to
./configure (optional if already run)
make
-based-on: 00dd50a00c00da4824b3aa5fe2b2f82baffca071
+based-on: a1cc50ba96d212c0647a91bf56e3de25eb35bd56
diff --git a/flist.c b/flist.c
--- a/flist.c
+++ b/flist.c
./configure (optional if already run)
make
-based-on: 00dd50a00c00da4824b3aa5fe2b2f82baffca071
+based-on: a1cc50ba96d212c0647a91bf56e3de25eb35bd56
diff --git a/Makefile.in b/Makefile.in
--- a/Makefile.in
+++ b/Makefile.in
# Programs we must have to run the test cases
CHECK_PROGS = rsync$(EXEEXT) tls$(EXEEXT) getgroups$(EXEEXT) getfsdev$(EXEEXT) \
-@@ -147,7 +147,7 @@ getgroups$(EXEEXT): getgroups.o
+@@ -150,7 +150,7 @@ getgroups$(EXEEXT): getgroups.o
getfsdev$(EXEEXT): getfsdev.o
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ getfsdev.o $(LIBS)
diff --git a/options.c b/options.c
--- a/options.c
+++ b/options.c
-@@ -783,7 +783,7 @@ enum {OPT_SERVER = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
+@@ -777,7 +777,7 @@ enum {OPT_SERVER = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
OPT_INCLUDE, OPT_INCLUDE_FROM, OPT_MODIFY_WINDOW, OPT_MIN_SIZE, OPT_CHMOD,
OPT_READ_BATCH, OPT_WRITE_BATCH, OPT_ONLY_WRITE_BATCH, OPT_MAX_SIZE,
OPT_NO_D, OPT_APPEND, OPT_NO_ICONV, OPT_INFO, OPT_DEBUG,
OPT_OLD_COMPRESS, OPT_NEW_COMPRESS, OPT_NO_COMPRESS,
OPT_REFUSED_BASE = 9000};
-@@ -938,6 +938,7 @@ static struct poptOption long_options[] = {
+@@ -932,6 +932,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, 0, 'y', 0, 0 },
{"no-fuzzy", 0, POPT_ARG_VAL, &fuzzy_basis, 0, 0, 0 },
{"no-y", 0, POPT_ARG_VAL, &fuzzy_basis, 0, 0, 0 },
-@@ -1198,6 +1199,9 @@ static void set_refuse_options(void)
+@@ -1192,6 +1193,9 @@ static void set_refuse_options(void)
#ifndef SUPPORT_HARD_LINKS
parse_one_refuse_match(0, "link-dest", list_end);
#endif
#ifndef ICONV_OPTION
parse_one_refuse_match(0, "iconv", list_end);
#endif
-@@ -1363,6 +1367,8 @@ char *alt_dest_opt(int type)
+@@ -1357,6 +1361,8 @@ char *alt_dest_opt(int type)
return "--copy-dest";
case LINK_DEST:
return "--link-dest";
default:
assert(0);
}
-@@ -1720,6 +1726,10 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -1714,6 +1720,10 @@ int parse_arguments(int *argc_p, const char ***argv_p)
want_dest_type = LINK_DEST;
goto set_dest_dir;
--compress, -z compress file data during the transfer
--compress-choice=STR choose the compression algorithm (aka --zc)
--compress-level=NUM explicitly set compression level (aka --zl)
-@@ -2284,6 +2285,17 @@ your home directory (remove the '=' for that).
+@@ -2281,6 +2282,17 @@ your home directory (remove the '=' for that).
specified (or implied by `-a`). You can work-around this bug by avoiding
the `-o` option when sending to an old rsync.
./configure (optional if already run)
make
-based-on: feb2fff894fff1509fd132bbe80f123d28fcea72
+based-on: a1cc50ba96d212c0647a91bf56e3de25eb35bd56
diff --git a/daemon-parm.txt b/daemon-parm.txt
--- a/daemon-parm.txt
+++ b/daemon-parm.txt
./configure (optional if already run)
make
-based-on: 00dd50a00c00da4824b3aa5fe2b2f82baffca071
+based-on: a1cc50ba96d212c0647a91bf56e3de25eb35bd56
diff --git a/generator.c b/generator.c
--- a/generator.c
+++ b/generator.c
int write_devices = 0;
int preserve_links = 0;
int preserve_hard_links = 0;
-@@ -857,6 +858,7 @@ static struct poptOption long_options[] = {
+@@ -851,6 +852,7 @@ static struct poptOption long_options[] = {
{"no-D", 0, POPT_ARG_NONE, 0, OPT_NO_D, 0, 0 },
{"devices", 0, POPT_ARG_VAL, &preserve_devices, 1, 0, 0 },
{"no-devices", 0, POPT_ARG_VAL, &preserve_devices, 0, 0, 0 },
{"write-devices", 0, POPT_ARG_VAL, &write_devices, 1, 0, 0 },
{"no-write-devices", 0, POPT_ARG_VAL, &write_devices, 0, 0, 0 },
{"specials", 0, POPT_ARG_VAL, &preserve_specials, 1, 0, 0 },
-@@ -1154,6 +1156,7 @@ static void set_refuse_options(void)
+@@ -1148,6 +1150,7 @@ static void set_refuse_options(void)
|| strcmp("iconv", longName) == 0
|| strcmp("no-iconv", longName) == 0
|| strcmp("checksum-seed", longName) == 0
|| strcmp("write-devices", longName) == 0 /* disable wild-match (it gets refused below) */
|| strcmp("log-format", longName) == 0 /* aka out-format (NOT log-file-format) */
|| strcmp("sender", longName) == 0
-@@ -1165,6 +1168,7 @@ static void set_refuse_options(void)
+@@ -1159,6 +1162,7 @@ static void set_refuse_options(void)
assert(list_end != NULL);
if (am_daemon) { /* Refused by default, but can be accepted via a negated exact match. */
parse_one_refuse_match(0, "write-devices", list_end);
}
-@@ -2896,6 +2900,9 @@ void server_options(char **args, int *argc_p)
+@@ -2890,6 +2894,9 @@ void server_options(char **args, int *argc_p)
else if (remove_source_files)
args[ac++] = "--remove-sent-files";
int update_only = 0;
int open_noatime = 0;
int cvs_exclude = 0;
-@@ -668,6 +669,11 @@ static void print_capabilities(enum logcode f)
+@@ -671,6 +672,11 @@ static void print_info_flags(enum logcode f)
#endif
"file-flags",
+#endif
+ "crtimes",
+
- "*" /* All options after this point are hidden w/o -V -V */
+ "*Optimizations",
+
#ifndef HAVE_SIMD
- "no "
-@@ -846,6 +852,9 @@ static struct poptOption long_options[] = {
+@@ -840,6 +846,9 @@ static struct poptOption long_options[] = {
{"no-U", 0, POPT_ARG_VAL, &preserve_atimes, 0, 0, 0 },
{"open-noatime", 0, POPT_ARG_VAL, &open_noatime, 1, 0, 0 },
{"no-open-noatime", 0, POPT_ARG_VAL, &open_noatime, 0, 0, 0 },
{"omit-dir-times", 'O', POPT_ARG_VAL, &omit_dir_times, 1, 0, 0 },
{"no-omit-dir-times",0, POPT_ARG_VAL, &omit_dir_times, 0, 0, 0 },
{"no-O", 0, POPT_ARG_VAL, &omit_dir_times, 0, 0, 0 },
-@@ -1227,6 +1236,9 @@ static void set_refuse_options(void)
+@@ -1221,6 +1230,9 @@ static void set_refuse_options(void)
parse_one_refuse_match(0, "force-uchange", list_end);
parse_one_refuse_match(0, "force-schange", list_end);
#endif
/* Now we use the descrip values to actually mark the options for refusal. */
for (op = long_options; op != list_end; op++) {
-@@ -2570,6 +2582,10 @@ void server_options(char **args, int *argc_p)
+@@ -2564,6 +2576,10 @@ void server_options(char **args, int *argc_p)
if (preserve_atimes > 1)
argstr[x++] = 'U';
}
--omit-dir-times, -O omit directories from --times
--omit-link-times, -J omit symlinks from --times
--super receiver attempts super-user activities
-@@ -1371,6 +1372,11 @@ your home directory (remove the '=' for that).
+@@ -1368,6 +1369,11 @@ your home directory (remove the '=' for that).
mounted to avoid updating the atime on read access even without the
O_NOATIME flag being set.
0. `--omit-dir-times`, `-O`
This tells rsync to omit directories when it is preserving modification
-@@ -2641,7 +2647,7 @@ your home directory (remove the '=' for that).
+@@ -2638,7 +2644,7 @@ your home directory (remove the '=' for that).
output of other verbose messages).
The "%i" escape has a cryptic output that is 11 letters long. The general
of update being done, **X** is replaced by the file-type, and the other
letters represent attributes that may be output if they are being modified.
-@@ -2698,6 +2704,8 @@ your home directory (remove the '=' for that).
+@@ -2695,6 +2701,8 @@ your home directory (remove the '=' for that).
happens when a symlink or directory is updated.
- The `a` means that the ACL information changed.
- The `x` means that the extended attribute information changed.
./configure (optional if already run)
make
-based-on: 00dd50a00c00da4824b3aa5fe2b2f82baffca071
+based-on: a1cc50ba96d212c0647a91bf56e3de25eb35bd56
diff --git a/exclude.c b/exclude.c
--- a/exclude.c
+++ b/exclude.c
./configure (optional if already run)
make
-based-on: 00dd50a00c00da4824b3aa5fe2b2f82baffca071
+based-on: a1cc50ba96d212c0647a91bf56e3de25eb35bd56
diff --git a/generator.c b/generator.c
--- a/generator.c
+++ b/generator.c
int daemon_bwlimit = 0;
int bwlimit = 0;
int fuzzy_basis = 0;
-@@ -884,6 +885,7 @@ static struct poptOption long_options[] = {
+@@ -878,6 +879,7 @@ static struct poptOption long_options[] = {
{"chmod", 0, POPT_ARG_STRING, 0, OPT_CHMOD, 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, 0, 'x', 0, 0 },
{"no-one-file-system",0, POPT_ARG_VAL, &one_file_system, 0, 0, 0 },
{"no-x", 0, POPT_ARG_VAL, &one_file_system, 0, 0, 0 },
-@@ -2783,6 +2785,9 @@ void server_options(char **args, int *argc_p)
+@@ -2777,6 +2779,9 @@ void server_options(char **args, int *argc_p)
else if (missing_args == 1 && !am_sender)
args[ac++] = "--ignore-missing-args";
--modify-window=NUM, -@ set the accuracy for mod-time comparisons
--temp-dir=DIR, -T create temporary files in directory DIR
--fuzzy, -y find similar file for basis if no dest file
-@@ -646,6 +647,14 @@ your home directory (remove the '=' for that).
+@@ -643,6 +644,14 @@ your home directory (remove the '=' for that).
after using another mirroring system which may not preserve timestamps
exactly.
./configure
make
-based-on: feb2fff894fff1509fd132bbe80f123d28fcea72
+based-on: a1cc50ba96d212c0647a91bf56e3de25eb35bd56
diff --git a/.gitignore b/.gitignore
--- a/.gitignore
+++ b/.gitignore
diff --git a/options.c b/options.c
--- a/options.c
+++ b/options.c
-@@ -939,7 +939,9 @@ static struct poptOption long_options[] = {
+@@ -933,7 +933,9 @@ 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, 0, 'y', 0, 0 },
{"no-fuzzy", 0, POPT_ARG_VAL, &fuzzy_basis, 0, 0, 0 },
{"no-y", 0, POPT_ARG_VAL, &fuzzy_basis, 0, 0, 0 },
-@@ -2764,8 +2766,14 @@ void server_options(char **args, int *argc_p)
+@@ -2758,8 +2760,14 @@ void server_options(char **args, int *argc_p)
args[ac++] = "--super";
if (size_only)
args[ac++] = "--size-only";
--compare-dest=DIR also compare destination files relative to DIR
--copy-dest=DIR ... and include copies of unchanged files
--link-dest=DIR hardlink to files in DIR when unchanged
-@@ -2217,6 +2219,17 @@ your home directory (remove the '=' for that).
+@@ -2214,6 +2216,17 @@ your home directory (remove the '=' for that).
otential alternate-basis files will be removed as the transfer progresses.
This option conflicts with `--inplace` and `--append`.
a file that can't use it, while missing out on giving it to a file
that could use it.
-based-on: 00dd50a00c00da4824b3aa5fe2b2f82baffca071
+based-on: a1cc50ba96d212c0647a91bf56e3de25eb35bd56
diff --git a/backup.c b/backup.c
--- a/backup.c
+++ b/backup.c
int implied_dirs = 1;
int missing_args = 0; /* 0 = FERROR_XFER, 1 = ignore, 2 = delete */
int numeric_ids = 0;
-@@ -938,6 +939,7 @@ static struct poptOption long_options[] = {
+@@ -932,6 +933,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, 0, 'y', 0, 0 },
{"no-fuzzy", 0, POPT_ARG_VAL, &fuzzy_basis, 0, 0, 0 },
{"no-y", 0, POPT_ARG_VAL, &fuzzy_basis, 0, 0, 0 },
-@@ -2350,7 +2352,7 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2344,7 +2346,7 @@ int parse_arguments(int *argc_p, const char ***argv_p)
inplace = 1;
}
partial_dir = tmp_partialdir;
if (inplace) {
-@@ -2359,6 +2361,7 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2353,6 +2355,7 @@ int parse_arguments(int *argc_p, const char ***argv_p)
snprintf(err_buf, sizeof err_buf,
"--%s cannot be used with --%s\n",
append_mode ? "append" : "inplace",
delay_updates ? "delay-updates" : "partial-dir");
return 0;
}
-@@ -2761,6 +2764,8 @@ void server_options(char **args, int *argc_p)
+@@ -2755,6 +2758,8 @@ void server_options(char **args, int *argc_p)
args[ac++] = "--super";
if (size_only)
args[ac++] = "--size-only";
--compare-dest=DIR also compare destination files relative to DIR
--copy-dest=DIR ... and include copies of unchanged files
--link-dest=DIR hardlink to files in DIR when unchanged
-@@ -2200,6 +2201,22 @@ your home directory (remove the '=' for that).
+@@ -2197,6 +2198,22 @@ your home directory (remove the '=' for that).
fuzzy-match files, so either use `--delete-after` or specify some filename
exclusions if you need to prevent this.
./configure (optional if already run)
make
-based-on: 00dd50a00c00da4824b3aa5fe2b2f82baffca071
+based-on: a1cc50ba96d212c0647a91bf56e3de25eb35bd56
diff --git a/options.c b/options.c
--- a/options.c
+++ b/options.c
extern int module_id;
extern int local_server;
extern int sanitize_paths;
-@@ -959,6 +960,8 @@ static struct poptOption long_options[] = {
+@@ -953,6 +954,8 @@ static struct poptOption long_options[] = {
{"partial-dir", 0, POPT_ARG_STRING, &partial_dir, 0, 0, 0 },
{"delay-updates", 0, POPT_ARG_VAL, &delay_updates, 1, 0, 0 },
{"no-delay-updates", 0, POPT_ARG_VAL, &delay_updates, 0, 0, 0 },
--prune-empty-dirs, -m prune empty directory chains from file-list
--numeric-ids don't map uid/gid values by user/group name
--usermap=STRING custom username mapping
-@@ -2917,6 +2918,16 @@ your home directory (remove the '=' for that).
+@@ -2914,6 +2915,16 @@ your home directory (remove the '=' for that).
update algorithm that is even more atomic (it uses `--link-dest` and a
parallel hierarchy of files).
./configure (optional if already run)
make
-based-on: 00dd50a00c00da4824b3aa5fe2b2f82baffca071
+based-on: a1cc50ba96d212c0647a91bf56e3de25eb35bd56
diff --git a/generator.c b/generator.c
--- a/generator.c
+++ b/generator.c
int update_only = 0;
int open_noatime = 0;
int cvs_exclude = 0;
-@@ -888,6 +889,7 @@ static struct poptOption long_options[] = {
+@@ -882,6 +883,7 @@ static struct poptOption long_options[] = {
{"no-one-file-system",0, POPT_ARG_VAL, &one_file_system, 0, 0, 0 },
{"no-x", 0, POPT_ARG_VAL, &one_file_system, 0, 0, 0 },
{"update", 'u', POPT_ARG_NONE, &update_only, 0, 0, 0 },
./configure (optional if already run)
make
-based-on: 00dd50a00c00da4824b3aa5fe2b2f82baffca071
+based-on: a1cc50ba96d212c0647a91bf56e3de25eb35bd56
diff --git a/compat.c b/compat.c
--- a/compat.c
+++ b/compat.c
int io_timeout = 0;
int prune_empty_dirs = 0;
int use_qsort = 0;
-@@ -661,6 +663,11 @@ static void print_capabilities(enum logcode f)
+@@ -664,6 +666,11 @@ static void print_info_flags(enum logcode f)
#endif
"prealloc",
+#endif
+ "file-flags",
+
- "*" /* All options after this point are hidden w/o -V -V */
+ "*Optimizations",
+
#ifndef HAVE_SIMD
- "no "
-@@ -822,6 +829,8 @@ static struct poptOption long_options[] = {
+@@ -816,6 +823,8 @@ static struct poptOption long_options[] = {
{"perms", 'p', POPT_ARG_VAL, &preserve_perms, 1, 0, 0 },
{"no-perms", 0, POPT_ARG_VAL, &preserve_perms, 0, 0, 0 },
{"no-p", 0, POPT_ARG_VAL, &preserve_perms, 0, 0, 0 },
{"executability", 'E', POPT_ARG_NONE, &preserve_executability, 0, 0, 0 },
{"acls", 'A', POPT_ARG_NONE, 0, 'A', 0, 0 },
{"no-acls", 0, POPT_ARG_VAL, &preserve_acls, 0, 0, 0 },
-@@ -916,6 +925,12 @@ static struct poptOption long_options[] = {
+@@ -910,6 +919,12 @@ static struct poptOption long_options[] = {
{"remove-source-files",0,POPT_ARG_VAL, &remove_source_files, 1, 0, 0 },
{"force", 0, POPT_ARG_VAL, &force_delete, 1, 0, 0 },
{"no-force", 0, POPT_ARG_VAL, &force_delete, 0, 0, 0 },
{"ignore-errors", 0, POPT_ARG_VAL, &ignore_errors, 1, 0, 0 },
{"no-ignore-errors", 0, POPT_ARG_VAL, &ignore_errors, 0, 0, 0 },
{"max-delete", 0, POPT_ARG_INT, &max_delete, 0, 0, 0 },
-@@ -1204,6 +1219,14 @@ static void set_refuse_options(void)
+@@ -1198,6 +1213,14 @@ static void set_refuse_options(void)
#ifndef HAVE_SETVBUF
parse_one_refuse_match(0, "outbuf", list_end);
#endif
/* Now we use the descrip values to actually mark the options for refusal. */
for (op = long_options; op != list_end; op++) {
-@@ -2652,6 +2675,9 @@ void server_options(char **args, int *argc_p)
+@@ -2646,6 +2669,9 @@ void server_options(char **args, int *argc_p)
if (xfer_dirs && !recurse && delete_mode && am_sender)
args[ac++] = "--no-r";
if (do_compression && do_compression_level != CLVL_NOT_SPECIFIED) {
if (asprintf(&arg, "--compress-level=%d", do_compression_level) < 0)
goto oom;
-@@ -2755,6 +2781,16 @@ void server_options(char **args, int *argc_p)
+@@ -2749,6 +2775,16 @@ void server_options(char **args, int *argc_p)
args[ac++] = "--delete-excluded";
if (force_delete)
args[ac++] = "--force";
--max-delete=NUM don't delete more than NUM files
--max-size=SIZE don't transfer any file larger than SIZE
--min-size=SIZE don't transfer any file smaller than SIZE
-@@ -703,6 +707,8 @@ your home directory (remove the '=' for that).
+@@ -700,6 +704,8 @@ your home directory (remove the '=' for that).
Note that `-a` **does not preserve hardlinks**, because finding
multiply-linked files is expensive. You must separately specify `-H`.
0. `--no-OPTION`
-@@ -1041,7 +1047,7 @@ your home directory (remove the '=' for that).
+@@ -1038,7 +1044,7 @@ your home directory (remove the '=' for that).
Without this option, if the sending side has replaced a directory with a
symlink to a directory, the receiving side will delete anything that is in
the way of the new symlink, including a directory hierarchy (as long as
See also `--keep-dirlinks` for an analogous option for the receiving side.
-@@ -1227,6 +1233,29 @@ your home directory (remove the '=' for that).
+@@ -1224,6 +1230,29 @@ your home directory (remove the '=' for that).
those used by `--fake-super`) unless you repeat the option (e.g. `-XX`).
This "copy all xattrs" mode cannot be used with `--fake-super`.
0. `--chmod=CHMOD`
This option tells rsync to apply one or more comma-separated "chmod" modes
-@@ -1689,7 +1718,7 @@ your home directory (remove the '=' for that).
+@@ -1686,7 +1715,7 @@ your home directory (remove the '=' for that).
option a step farther: each missing arg will become a deletion request of
the corresponding destination file on the receiving side (should it exist).
If the destination file is a non-empty directory, it will only be
that, this option is independent of any other type of delete processing.
The missing source files are represented by special file-list entries which
-@@ -1700,15 +1729,16 @@ your home directory (remove the '=' for that).
+@@ -1697,15 +1726,16 @@ your home directory (remove the '=' for that).
Tells `--delete` to go ahead and delete files even when there are I/O
errors.
0. `--max-delete=NUM`
-@@ -2611,7 +2641,7 @@ your home directory (remove the '=' for that).
+@@ -2608,7 +2638,7 @@ your home directory (remove the '=' for that).
output of other verbose messages).
The "%i" escape has a cryptic output that is 11 letters long. The general
./configure (optional if already run)
make
-based-on: 00dd50a00c00da4824b3aa5fe2b2f82baffca071
+based-on: a1cc50ba96d212c0647a91bf56e3de25eb35bd56
diff --git a/exclude.c b/exclude.c
--- a/exclude.c
+++ b/exclude.c
diff --git a/rsync.1.md b/rsync.1.md
--- a/rsync.1.md
+++ b/rsync.1.md
-@@ -1250,7 +1250,9 @@ your home directory (remove the '=' for that).
+@@ -1247,7 +1247,9 @@ your home directory (remove the '=' for that).
> --chmod=D2775,F664
It is also legal to specify multiple `--chmod` options, as each additional
See the `--perms` and `--executability` options for how the resulting
permission value can be applied to the files in the transfer.
-@@ -2547,6 +2549,10 @@ your home directory (remove the '=' for that).
+@@ -2544,6 +2546,10 @@ your home directory (remove the '=' for that).
If you specify "`--chown=foo:bar`", this is exactly the same as specifying
"`--usermap=*:foo --groupmap=*:bar`", only easier.
0. `--timeout=SECONDS`
This option allows you to set a maximum I/O timeout in seconds. If no data
-@@ -3498,6 +3504,15 @@ The following modifiers are accepted after a "`+`" or "`-`":
+@@ -3495,6 +3501,15 @@ The following modifiers are accepted after a "`+`" or "`-`":
rules that exclude things like "CVS" and "`*.o`" are marked as perishable,
and will not prevent a directory that was removed on the source from being
deleted on the destination.
- An `x` indicates that a rule affects xattr names in xattr copy/delete
operations (and is thus ignored when matching file/dir names). If no
xattr-matching rules are specified, a default xattr filtering rule is used
-@@ -3555,6 +3570,12 @@ The following modifiers are accepted after a merge or dir-merge rule:
+@@ -3552,6 +3567,12 @@ The following modifiers are accepted after a merge or dir-merge rule:
rules in the file must not specify sides (via a modifier or a rule prefix
such as `hide`).
./configure (optional if already run)
make
-based-on: 00dd50a00c00da4824b3aa5fe2b2f82baffca071
+based-on: a1cc50ba96d212c0647a91bf56e3de25eb35bd56
diff --git a/options.c b/options.c
--- a/options.c
+++ b/options.c
int ignore_times = 0;
int delete_mode = 0;
int delete_during = 0;
-@@ -994,6 +995,7 @@ static struct poptOption long_options[] = {
+@@ -988,6 +989,7 @@ static struct poptOption long_options[] = {
{"no-timeout", 0, POPT_ARG_VAL, &io_timeout, 0, 0, 0 },
{"contimeout", 0, POPT_ARG_INT, &connect_timeout, 0, 0, 0 },
{"no-contimeout", 0, POPT_ARG_VAL, &connect_timeout, 0, 0, 0 },
{"rsh", 'e', POPT_ARG_STRING, &shell_cmd, 0, 0, 0 },
{"rsync-path", 0, POPT_ARG_STRING, &rsync_path, 0, 0, 0 },
{"temp-dir", 'T', POPT_ARG_STRING, &tmpdir, 0, 0, 0 },
-@@ -2846,6 +2848,9 @@ void server_options(char **args, int *argc_p)
+@@ -2840,6 +2842,9 @@ void server_options(char **args, int *argc_p)
args[ac++] = tmpdir;
}
int preserve_perms = 0;
int preserve_fileflags = 0;
int preserve_executability = 0;
-@@ -940,6 +941,10 @@ static struct poptOption long_options[] = {
+@@ -934,6 +935,10 @@ static struct poptOption long_options[] = {
{"no-force-change", 0, POPT_ARG_VAL, &force_change, 0, 0, 0 },
{"force-uchange", 0, POPT_ARG_VAL, &force_change, USR_IMMUTABLE, 0, 0 },
{"force-schange", 0, POPT_ARG_VAL, &force_change, SYS_IMMUTABLE, 0, 0 },
{"ignore-errors", 0, POPT_ARG_VAL, &ignore_errors, 1, 0, 0 },
{"no-ignore-errors", 0, POPT_ARG_VAL, &ignore_errors, 0, 0, 0 },
{"max-delete", 0, POPT_ARG_INT, &max_delete, 0, 0, 0 },
-@@ -1239,6 +1244,10 @@ static void set_refuse_options(void)
+@@ -1233,6 +1238,10 @@ static void set_refuse_options(void)
#ifndef SUPPORT_CRTIMES
parse_one_refuse_match(0, "crtimes", list_end);
#endif
/* Now we use the descrip values to actually mark the options for refusal. */
for (op = long_options; op != list_end; op++) {
-@@ -2078,6 +2087,15 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2072,6 +2081,15 @@ int parse_arguments(int *argc_p, const char ***argv_p)
}
#endif
if (block_size) {
/* We may not know the real protocol_version at this point if this is the client
* option parsing, but we still want to check it so that the client can specify
-@@ -2694,6 +2712,11 @@ void server_options(char **args, int *argc_p)
+@@ -2688,6 +2706,11 @@ void server_options(char **args, int *argc_p)
if (preserve_fileflags)
args[ac++] = "--fileflags";
--owner, -o preserve owner (super-user only)
--group, -g preserve group
--devices preserve device files (super-user only)
-@@ -1257,6 +1259,47 @@ your home directory (remove the '=' for that).
+@@ -1254,6 +1256,47 @@ your home directory (remove the '=' for that).
receiving side. It does not try to affect user flags. This option
overrides `--force-change` and `--force-uchange`.
- Make this code handle multibyte character encodings, and honor the
--iconv setting when converting case.
-based-on: 00dd50a00c00da4824b3aa5fe2b2f82baffca071
+based-on: a1cc50ba96d212c0647a91bf56e3de25eb35bd56
diff --git a/exclude.c b/exclude.c
--- a/exclude.c
+++ b/exclude.c
int blocking_io = -1;
int checksum_seed = 0;
int inplace = 0;
-@@ -979,6 +980,8 @@ static struct poptOption long_options[] = {
+@@ -973,6 +974,8 @@ static struct poptOption long_options[] = {
{"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 },
{"only-write-batch", 0, POPT_ARG_STRING, &batch_name, OPT_ONLY_WRITE_BATCH, 0, 0 },
{"files-from", 0, POPT_ARG_STRING, &files_from, 0, 0, 0 },
{"from0", '0', POPT_ARG_VAL, &eol_nulls, 1, 0, 0},
{"no-from0", 0, POPT_ARG_VAL, &eol_nulls, 0, 0, 0},
-@@ -2796,6 +2799,9 @@ void server_options(char **args, int *argc_p)
+@@ -2790,6 +2793,9 @@ void server_options(char **args, int *argc_p)
args[ac++] = arg;
}
--address=ADDRESS bind address for outgoing socket to daemon
--port=PORT specify double-colon alternate port number
--sockopts=OPTIONS specify custom TCP options
-@@ -2148,6 +2149,12 @@ your home directory (remove the '=' for that).
+@@ -2145,6 +2146,12 @@ your home directory (remove the '=' for that).
> sudo rsync -aive lsh -M--copy-as=joe src/ lh:dest/
./configure
make
-based-on: feb2fff894fff1509fd132bbe80f123d28fcea72
+based-on: a1cc50ba96d212c0647a91bf56e3de25eb35bd56
diff --git a/Makefile.in b/Makefile.in
--- a/Makefile.in
+++ b/Makefile.in
./configure
make
-based-on: feb2fff894fff1509fd132bbe80f123d28fcea72
+based-on: a1cc50ba96d212c0647a91bf56e3de25eb35bd56
diff --git a/Makefile.in b/Makefile.in
--- a/Makefile.in
+++ b/Makefile.in
fast fallback for the case where xxHash libraries are not available at
build time.
-based-on: 00dd50a00c00da4824b3aa5fe2b2f82baffca071
+based-on: a1cc50ba96d212c0647a91bf56e3de25eb35bd56
diff --git a/Makefile.in b/Makefile.in
--- a/Makefile.in
+++ b/Makefile.in
lib/permstring.o lib/pool_alloc.o lib/sysacls.o lib/sysxattrs.o @LIBOBJS@
zlib_OBJS=zlib/deflate.o zlib/inffast.o zlib/inflate.o zlib/inftrees.o \
zlib/trees.o zlib/zutil.o zlib/adler32.o zlib/compress.o zlib/crc32.o
-@@ -132,6 +132,9 @@ rounding.h: rounding.c rsync.h proto.h
+@@ -135,6 +135,9 @@ rounding.h: rounding.c rsync.h proto.h
simd-checksum-x86_64.o: simd-checksum-x86_64.cpp
@$(srcdir)/cmdormsg disable-simd $(CXX) -I. $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $(srcdir)/simd-checksum-x86_64.cpp
./configure (optional if already run)
make
-based-on: feb2fff894fff1509fd132bbe80f123d28fcea72
+based-on: a1cc50ba96d212c0647a91bf56e3de25eb35bd56
diff --git a/authenticate.c b/authenticate.c
--- a/authenticate.c
+++ b/authenticate.c
./configure (optional if already run)
make
-based-on: 00dd50a00c00da4824b3aa5fe2b2f82baffca071
+based-on: a1cc50ba96d212c0647a91bf56e3de25eb35bd56
diff --git a/access.c b/access.c
--- a/access.c
+++ b/access.c
./configure (optional if already run)
make
-based-on: 00dd50a00c00da4824b3aa5fe2b2f82baffca071
+based-on: a1cc50ba96d212c0647a91bf56e3de25eb35bd56
diff --git a/generator.c b/generator.c
--- a/generator.c
+++ b/generator.c
int one_file_system = 0;
int protocol_version = PROTOCOL_VERSION;
int sparse_files = 0;
-@@ -843,6 +844,7 @@ static struct poptOption long_options[] = {
+@@ -837,6 +838,7 @@ static struct poptOption long_options[] = {
{"omit-link-times", 'J', POPT_ARG_VAL, &omit_link_times, 1, 0, 0 },
{"no-omit-link-times",0, POPT_ARG_VAL, &omit_link_times, 0, 0, 0 },
{"no-J", 0, POPT_ARG_VAL, &omit_link_times, 0, 0, 0 },
{"modify-window", '@', POPT_ARG_INT, &modify_window, OPT_MODIFY_WINDOW, 0, 0 },
{"super", 0, POPT_ARG_VAL, &am_root, 2, 0, 0 },
{"no-super", 0, POPT_ARG_VAL, &am_root, 0, 0, 0 },
-@@ -2259,6 +2261,9 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2253,6 +2255,9 @@ int parse_arguments(int *argc_p, const char ***argv_p)
parse_filter_str(&filter_list, backup_dir_buf, rule_template(0), 0);
}
if (preserve_times) {
preserve_times = PRESERVE_FILE_TIMES;
if (!omit_dir_times)
-@@ -2511,6 +2516,8 @@ void server_options(char **args, int *argc_p)
+@@ -2505,6 +2510,8 @@ void server_options(char **args, int *argc_p)
argstr[x++] = 'O';
if (omit_link_times)
argstr[x++] = 'J';
--super receiver attempts super-user activities
--fake-super store/recover privileged attrs using xattrs
--sparse, -S turn sequences of nulls into sparse blocks
-@@ -1365,6 +1366,11 @@ your home directory (remove the '=' for that).
+@@ -1362,6 +1363,11 @@ your home directory (remove the '=' for that).
This tells rsync to omit symlinks when it is preserving modification times
(see `--times`).
./configure (optional if already run)
make
-based-on: 00dd50a00c00da4824b3aa5fe2b2f82baffca071
+based-on: a1cc50ba96d212c0647a91bf56e3de25eb35bd56
diff --git a/flist.c b/flist.c
--- a/flist.c
+++ b/flist.c
size_t bwlimit_writemax = 0;
int ignore_existing = 0;
int ignore_non_existing = 0;
-@@ -969,6 +970,7 @@ static struct poptOption long_options[] = {
+@@ -963,6 +964,7 @@ static struct poptOption long_options[] = {
{"itemize-changes", 'i', POPT_ARG_NONE, 0, 'i', 0, 0 },
{"no-itemize-changes",0, POPT_ARG_VAL, &itemize_changes, 0, 0, 0 },
{"no-i", 0, POPT_ARG_VAL, &itemize_changes, 0, 0, 0 },
TODO: the configure changes should abort if the user requests --enable-slp
and we can't honor that request.
-based-on: feb2fff894fff1509fd132bbe80f123d28fcea72
+based-on: a1cc50ba96d212c0647a91bf56e3de25eb35bd56
diff --git a/Makefile.in b/Makefile.in
--- a/Makefile.in
+++ b/Makefile.in
./configure (optional if already run)
make
-based-on: 00dd50a00c00da4824b3aa5fe2b2f82baffca071
+based-on: a1cc50ba96d212c0647a91bf56e3de25eb35bd56
diff --git a/syscall.c b/syscall.c
--- a/syscall.c
+++ b/syscall.c
-- Matt McCutchen <hashproduct@gmail.com>
-based-on: 00dd50a00c00da4824b3aa5fe2b2f82baffca071
+based-on: a1cc50ba96d212c0647a91bf56e3de25eb35bd56
diff --git a/options.c b/options.c
--- a/options.c
+++ b/options.c
/**
* If 1, send the whole file as literal data rather than trying to
-@@ -972,6 +973,7 @@ static struct poptOption long_options[] = {
+@@ -966,6 +967,7 @@ static struct poptOption long_options[] = {
{"bwlimit", 0, POPT_ARG_STRING, &bwlimit_arg, OPT_BWLIMIT, 0, 0 },
{"no-bwlimit", 0, POPT_ARG_VAL, &bwlimit, 0, 0, 0 },
{"backup", 'b', POPT_ARG_VAL, &make_backups, 1, 0, 0 },
{"no-backup", 0, POPT_ARG_VAL, &make_backups, 0, 0, 0 },
{"backup-dir", 0, POPT_ARG_STRING, &backup_dir, 0, 0, 0 },
{"suffix", 0, POPT_ARG_STRING, &backup_suffix, 0, 0, 0 },
-@@ -2769,6 +2771,8 @@ void server_options(char **args, int *argc_p)
+@@ -2763,6 +2765,8 @@ void server_options(char **args, int *argc_p)
goto oom;
args[ac++] = arg;
}
--del an alias for --delete-during
--delete delete extraneous files from dest dirs
--delete-before receiver deletes before xfer, not during
-@@ -1580,6 +1581,16 @@ your home directory (remove the '=' for that).
+@@ -1577,6 +1578,16 @@ your home directory (remove the '=' for that).
Starting with 3.1.0, rsync will skip the sender-side removal (and output an
error) if the file's size or modify time has not stayed unchanged.
./configure (optional if already run)
make
-based-on: 00dd50a00c00da4824b3aa5fe2b2f82baffca071
+based-on: a1cc50ba96d212c0647a91bf56e3de25eb35bd56
diff --git a/generator.c b/generator.c
--- a/generator.c
+++ b/generator.c
char *early_input_file = NULL;
char *rsync_path = RSYNC_PATH;
char *backup_dir = NULL;
-@@ -884,6 +887,7 @@ static struct poptOption long_options[] = {
+@@ -878,6 +881,7 @@ static struct poptOption long_options[] = {
{"chmod", 0, POPT_ARG_STRING, 0, OPT_CHMOD, 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, 0, 'x', 0, 0 },
{"no-one-file-system",0, POPT_ARG_VAL, &one_file_system, 0, 0, 0 },
{"no-x", 0, POPT_ARG_VAL, &one_file_system, 0, 0, 0 },
-@@ -1013,6 +1017,8 @@ static struct poptOption long_options[] = {
+@@ -1007,6 +1011,8 @@ static struct poptOption long_options[] = {
{"early-input", 0, POPT_ARG_STRING, &early_input_file, 0, 0, 0 },
{"blocking-io", 0, POPT_ARG_VAL, &blocking_io, 1, 0, 0 },
{"no-blocking-io", 0, POPT_ARG_VAL, &blocking_io, 0, 0, 0 },
{"outbuf", 0, POPT_ARG_STRING, &outbuf_mode, 0, 0, 0 },
{"remote-option", 'M', POPT_ARG_STRING, 0, 'M', 0, 0 },
{"protocol", 0, POPT_ARG_INT, &protocol_version, 0, 0, 0 },
-@@ -2394,6 +2400,16 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2388,6 +2394,16 @@ int parse_arguments(int *argc_p, const char ***argv_p)
}
}
if (files_from) {
char *h, *p;
int q;
-@@ -2783,6 +2799,25 @@ void server_options(char **args, int *argc_p)
+@@ -2777,6 +2793,25 @@ void server_options(char **args, int *argc_p)
else if (missing_args == 1 && !am_sender)
args[ac++] = "--ignore-missing-args";
--protocol=NUM force an older protocol version to be used
--iconv=CONVERT_SPEC request charset conversion of filenames
--checksum-seed=NUM set block/file checksum seed (advanced)
-@@ -3142,6 +3145,36 @@ your home directory (remove the '=' for that).
+@@ -3139,6 +3142,36 @@ your home directory (remove the '=' for that).
`--write-batch`. If _FILE_ is `-`, the batch data will be read from
standard input. See the "BATCH MODE" section for details.
./configure (optional if already run)
make
-based-on: 00dd50a00c00da4824b3aa5fe2b2f82baffca071
+based-on: a1cc50ba96d212c0647a91bf56e3de25eb35bd56
diff --git a/fileio.c b/fileio.c
--- a/fileio.c
+++ b/fileio.c
int preallocate_files = 0;
int do_compression = 0;
int do_compression_level = CLVL_NOT_SPECIFIED;
-@@ -897,6 +898,7 @@ static struct poptOption long_options[] = {
+@@ -891,6 +892,7 @@ static struct poptOption long_options[] = {
{"sparse", 'S', POPT_ARG_VAL, &sparse_files, 1, 0, 0 },
{"no-sparse", 0, POPT_ARG_VAL, &sparse_files, 0, 0, 0 },
{"no-S", 0, POPT_ARG_VAL, &sparse_files, 0, 0, 0 },
{"preallocate", 0, POPT_ARG_NONE, &preallocate_files, 0, 0, 0},
{"inplace", 0, POPT_ARG_VAL, &inplace, 1, 0, 0 },
{"no-inplace", 0, POPT_ARG_VAL, &inplace, 0, 0, 0 },
-@@ -2685,6 +2687,12 @@ void server_options(char **args, int *argc_p)
+@@ -2679,6 +2681,12 @@ void server_options(char **args, int *argc_p)
args[ac++] = arg;
}
--preallocate allocate dest files before writing them
--write-devices write to devices as files (implies --inplace)
--dry-run, -n perform a trial run with no changes made
-@@ -1437,6 +1438,18 @@ your home directory (remove the '=' for that).
+@@ -1434,6 +1435,18 @@ your home directory (remove the '=' for that).
opposed to allocated sequences of null bytes) if the kernel version and
filesystem type support creating holes in the allocated data.
./configure (optional if already run)
make
-based-on: 00dd50a00c00da4824b3aa5fe2b2f82baffca071
+based-on: a1cc50ba96d212c0647a91bf56e3de25eb35bd56
diff --git a/io.c b/io.c
--- a/io.c
+++ b/io.c
int max_delete = INT_MIN;
OFF_T max_size = -1;
OFF_T min_size = -1;
-@@ -785,6 +786,7 @@ enum {OPT_SERVER = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
+@@ -779,6 +780,7 @@ enum {OPT_SERVER = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
OPT_NO_D, OPT_APPEND, OPT_NO_ICONV, OPT_INFO, OPT_DEBUG,
OPT_USERMAP, OPT_GROUPMAP, OPT_CHOWN, OPT_BWLIMIT,
OPT_OLD_COMPRESS, OPT_NEW_COMPRESS, OPT_NO_COMPRESS,
OPT_REFUSED_BASE = 9000};
static struct poptOption long_options[] = {
-@@ -994,6 +996,8 @@ static struct poptOption long_options[] = {
+@@ -988,6 +990,8 @@ static struct poptOption long_options[] = {
{"no-timeout", 0, POPT_ARG_VAL, &io_timeout, 0, 0, 0 },
{"contimeout", 0, POPT_ARG_INT, &connect_timeout, 0, 0, 0 },
{"no-contimeout", 0, POPT_ARG_VAL, &connect_timeout, 0, 0, 0 },
{"rsh", 'e', POPT_ARG_STRING, &shell_cmd, 0, 0, 0 },
{"rsync-path", 0, POPT_ARG_STRING, &rsync_path, 0, 0, 0 },
{"temp-dir", 'T', POPT_ARG_STRING, &tmpdir, 0, 0, 0 },
-@@ -1869,6 +1873,36 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -1863,6 +1867,36 @@ int parse_arguments(int *argc_p, const char ***argv_p)
return 0;
#endif
default:
/* A large opt value means that set_refuse_options()
* turned this option off. */
-@@ -2697,6 +2731,15 @@ void server_options(char **args, int *argc_p)
+@@ -2691,6 +2725,15 @@ void server_options(char **args, int *argc_p)
args[ac++] = arg;
}
--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
-@@ -3106,6 +3108,22 @@ your home directory (remove the '=' for that).
+@@ -3103,6 +3105,22 @@ your home directory (remove the '=' for that).
buffered, while other can show up as very slow when the flushing of the
output buffer occurs. This may be fixed in a future version.
./configure (optional if already run)
make
-based-on: 00dd50a00c00da4824b3aa5fe2b2f82baffca071
+based-on: a1cc50ba96d212c0647a91bf56e3de25eb35bd56
diff --git a/flist.c b/flist.c
--- a/flist.c
+++ b/flist.c
#define MAX_BATCH_NAME_LEN 256 /* Must be less than MAXPATHLEN-13 */
char *batch_name = NULL;
-@@ -999,6 +1000,7 @@ static struct poptOption long_options[] = {
+@@ -993,6 +994,7 @@ static struct poptOption long_options[] = {
{"temp-dir", 'T', POPT_ARG_STRING, &tmpdir, 0, 0, 0 },
{"iconv", 0, POPT_ARG_STRING, &iconv_opt, 0, 0, 0 },
{"no-iconv", 0, POPT_ARG_NONE, 0, OPT_NO_ICONV, 0, 0 },
{"ipv4", '4', POPT_ARG_VAL, &default_af_hint, AF_INET, 0, 0 },
{"ipv6", '6', POPT_ARG_VAL, &default_af_hint, AF_INET6, 0, 0 },
{"8-bit-output", '8', POPT_ARG_VAL, &allow_8bit_chars, 1, 0, 0 },
-@@ -2440,6 +2442,24 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2434,6 +2436,24 @@ int parse_arguments(int *argc_p, const char ***argv_p)
}
}
am_starting_up = 0;
return 1;
-@@ -2888,6 +2908,12 @@ void server_options(char **args, int *argc_p)
+@@ -2882,6 +2902,12 @@ void server_options(char **args, int *argc_p)
if (relative_paths && !implied_dirs && (!am_sender || protocol_version >= 30))
args[ac++] = "--no-implied-dirs";
--checksum-seed=NUM set block/file checksum seed (advanced)
--ipv4, -4 prefer IPv4
--ipv6, -6 prefer IPv6
-@@ -3184,6 +3185,25 @@ your home directory (remove the '=' for that).
+@@ -3181,6 +3182,25 @@ your home directory (remove the '=' for that).
free to specify just the local charset for a daemon transfer (e.g.
`--iconv=utf8`).
./configure (optional if already run)
make
-based-on: 00dd50a00c00da4824b3aa5fe2b2f82baffca071
+based-on: a1cc50ba96d212c0647a91bf56e3de25eb35bd56
diff --git a/syscall.c b/syscall.c
--- a/syscall.c
+++ b/syscall.c
./configure (optional if already run)
make
-based-on: 00dd50a00c00da4824b3aa5fe2b2f82baffca071
+based-on: a1cc50ba96d212c0647a91bf56e3de25eb35bd56
diff --git a/checksum.c b/checksum.c
--- a/checksum.c
+++ b/checksum.c