--- old/compat.c
+++ new/compat.c
-@@ -49,6 +49,7 @@ extern int preserve_xattrs;
- extern int need_messages_from_generator;
- extern int delete_mode, delete_before, delete_during, delete_after;
- extern int delete_excluded;
+@@ -41,6 +41,7 @@ extern int checksum_seed;
+ extern int basis_dir_cnt;
+ extern int prune_empty_dirs;
+ extern int protocol_version;
+extern int detect_renamed;
- extern int make_backups;
- extern char *shell_cmd; /* contains VER.SUB string if client is a pre-release */
- extern char *backup_dir, *backup_suffix;
-@@ -221,7 +222,7 @@ void setup_protocol(int f_out,int f_in)
+ extern int protect_args;
+ extern int preserve_uid;
+ extern int preserve_gid;
+@@ -218,7 +219,7 @@ void setup_protocol(int f_out,int f_in)
} else if (protocol_version >= 30) {
if (recurse && allow_inc_recurse
&& !delete_before && !delete_after && !delay_updates
static char empty_sum[MAX_DIGEST_LEN];
static int flist_count_offset; /* for --delete --progress */
static int dir_count = 0;
-@@ -281,6 +284,45 @@ static int is_excluded(char *fname, int
+@@ -252,6 +255,45 @@ static int is_excluded(char *fname, int
return 0;
}
static void send_directory(int f, struct file_list *flist,
char *fbuf, int len, int flags);
-@@ -1935,6 +1977,25 @@ struct file_list *send_file_list(int f,
+@@ -2021,6 +2063,25 @@ struct file_list *send_file_list(int f,
if (verbose > 2)
rprintf(FINFO, "send_file_list done\n");
if (do_progress && !am_server)
rprintf(FINFO, " \r");
-@@ -1072,6 +1217,7 @@ static int try_dests_non(struct file_str
- return j;
+@@ -1101,6 +1246,7 @@ static void list_file_entry(struct file_
+ }
}
+static struct bitbag *delayed_bits = NULL;
static int phase = 0;
static int dflt_perms;
-@@ -1308,8 +1454,12 @@ static void recv_generator(char *fname,
+@@ -1345,8 +1491,12 @@ static void recv_generator(char *fname,
}
}
else if (delete_during && f_out != -1 && !phase && dry_run < 2
goto cleanup;
}
-@@ -1587,8 +1737,14 @@ static void recv_generator(char *fname,
+@@ -1624,8 +1774,14 @@ static void recv_generator(char *fname,
goto cleanup;
}
#endif
rsyserr(FERROR, stat_errno, "recv_generator: failed to stat %s",
full_fname(fname));
goto cleanup;
-@@ -1910,6 +2066,12 @@ void generate_files(int f_out, const cha
+@@ -1961,6 +2117,12 @@ void generate_files(int f_out, const cha
if (verbose > 2)
rprintf(FINFO, "generator starting pid=%ld\n", (long)getpid());
if (delete_before && !solo_file && cur_flist->used > 0)
do_delete_pass();
if (delete_during == 2) {
-@@ -1920,7 +2082,7 @@ void generate_files(int f_out, const cha
+@@ -1971,7 +2133,7 @@ void generate_files(int f_out, const cha
}
do_progress = 0;
whole_file = 0;
if (verbose >= 2) {
rprintf(FINFO, "delta-transmission %s\n",
-@@ -1958,7 +2120,7 @@ void generate_files(int f_out, const cha
+@@ -2009,7 +2171,7 @@ void generate_files(int f_out, const cha
dirdev = MAKEDEV(DEV_MAJOR(devp), DEV_MINOR(devp));
} else
dirdev = MAKEDEV(0, 0);
}
}
}
-@@ -2003,7 +2165,21 @@ void generate_files(int f_out, const cha
+@@ -2054,7 +2216,21 @@ void generate_files(int f_out, const cha
} while ((cur_flist = cur_flist->next) != NULL);
if (delete_during)
rprintf(FINFO, "generate_files phase=%d\n", phase);
--- old/options.c
+++ new/options.c
-@@ -79,6 +79,7 @@ int am_generator = 0;
+@@ -80,6 +80,7 @@ int am_generator = 0;
int am_starting_up = 1;
int relative_paths = -1;
int implied_dirs = 1;
int numeric_ids = 0;
int allow_8bit_chars = 0;
int force_delete = 0;
-@@ -382,6 +383,7 @@ void usage(enum logcode F)
+@@ -383,6 +384,7 @@ void usage(enum logcode F)
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");
{"fuzzy", 'y', POPT_ARG_NONE, &fuzzy_basis, 0, 0, 0 },
{"compress", 'z', POPT_ARG_NONE, 0, 'z', 0, 0 },
{"no-compress", 0, POPT_ARG_VAL, &do_compression, 0, 0, 0 },
-@@ -1531,7 +1534,7 @@ int parse_arguments(int *argc_p, const c
+@@ -1533,7 +1536,7 @@ int parse_arguments(int *argc_p, const c
inplace = 1;
}
partial_dir = tmp_partialdir;
if (inplace) {
-@@ -1540,6 +1543,7 @@ int parse_arguments(int *argc_p, const c
+@@ -1542,6 +1545,7 @@ int parse_arguments(int *argc_p, const c
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;
}
-@@ -1887,6 +1891,8 @@ void server_options(char **args, int *ar
+@@ -1889,6 +1893,8 @@ void server_options(char **args, int *ar
args[ac++] = "--super";
if (size_only)
args[ac++] = "--size-only";
--compare-dest=DIR also compare received files relative to DIR
--copy-dest=DIR ... and include copies of unchanged files
--link-dest=DIR hardlink to files in DIR when unchanged
-@@ -1394,6 +1395,15 @@ Note that the use of the bf(--delete) op
+@@ -1417,6 +1418,15 @@ Note that the use of the bf(--delete) op
fuzzy-match files, so either use bf(--delete-after) or specify some
filename exclusions if you need to prevent this.
files against doing transfers (if the files are missing in the destination
--- old/util.c
+++ new/util.c
-@@ -1029,6 +1029,32 @@ int handle_partial_dir(const char *fname
+@@ -1030,6 +1030,32 @@ int handle_partial_dir(const char *fname
return 1;
}