extern int always_checksum;
extern char *partial_dir;
extern char *compare_dest;
-@@ -240,6 +241,93 @@ static void generate_and_send_sums(int f
+@@ -239,6 +240,93 @@ static void generate_and_send_sums(int f
}
/*
* Acts on file number @p i from @p flist, whose name is @p fname.
-@@ -448,6 +536,15 @@ static void recv_generator(char *fname,
+@@ -447,6 +535,15 @@ static void recv_generator(char *fname,
stat_errno = ENOENT;
}
if (statret == -1) {
if (preserve_hard_links && hard_link_check(file, HL_SKIP))
return;
-@@ -474,7 +571,7 @@ static void recv_generator(char *fname,
+@@ -473,7 +570,7 @@ static void recv_generator(char *fname,
return;
}
if (fnamecmp_type == G2R_FNAME)
set_perms(fname, file, &st, PERMS_REPORT);
return;
-@@ -522,6 +619,21 @@ static void recv_generator(char *fname,
+@@ -521,6 +618,21 @@ static void recv_generator(char *fname,
notify_others:
if (f_out_name >= 0) {
write_byte(f_out_name, fnamecmp_type);
--- orig/main.c 2004-07-22 00:10:43
+++ main.c 2004-07-22 00:32:31
-@@ -47,6 +47,7 @@ extern int keep_dirlinks;
+@@ -48,6 +48,7 @@ extern int keep_dirlinks;
extern int preserve_hard_links;
extern int protocol_version;
extern int recurse;
extern int relative_paths;
extern int rsync_port;
extern int whole_file;
-@@ -458,7 +459,7 @@ static int do_recv(int f_in,int f_out,st
+@@ -459,7 +460,7 @@ static int do_recv(int f_in,int f_out,st
int pid;
int status = 0;
int error_pipe[2], name_pipe[2];
- BOOL need_name_pipe = compare_dest && !dry_run;
+ BOOL need_name_pipe = (compare_dest || fuzzy_basis) && !dry_run;
- if (preserve_hard_links)
- init_hard_links(flist);
---- orig/options.c 2004-07-29 16:08:03
+ /* The receiving side mustn't obey this, or an existing symlink that
+ * points to an identical file won't be replaced by the referent. */
+--- orig/options.c 2004-08-03 15:41:32
+++ options.c 2004-07-16 20:14:12
-@@ -85,6 +85,7 @@ int safe_symlinks = 0;
+@@ -86,6 +86,7 @@ int safe_symlinks = 0;
int copy_unsafe_links = 0;
int size_only = 0;
int bwlimit = 0;
size_t bwlimit_writemax = 0;
int delete_after = 0;
int only_existing = 0;
-@@ -279,6 +280,7 @@ void usage(enum logcode F)
+@@ -280,6 +281,7 @@ void usage(enum logcode F)
rprintf(F," -T, --temp-dir=DIR create temporary files in directory DIR\n");
rprintf(F," --compare-dest=DIR also compare destination files relative to DIR\n");
rprintf(F," --link-dest=DIR create hardlinks to DIR for unchanged files\n");
rprintf(F," -P equivalent to --partial --progress\n");
rprintf(F," -z, --compress compress file data\n");
rprintf(F," -C, --cvs-exclude auto ignore files in the same way CVS does\n");
-@@ -378,6 +380,7 @@ static struct poptOption long_options[]
+@@ -379,6 +381,7 @@ static struct poptOption long_options[]
{"temp-dir", 'T', POPT_ARG_STRING, &tmpdir, 0, 0, 0 },
{"compare-dest", 0, POPT_ARG_STRING, &compare_dest, 0, 0, 0 },
{"link-dest", 0, POPT_ARG_STRING, &compare_dest, OPT_LINK_DEST, 0, 0 },
/* TODO: Should this take an optional int giving the compression level? */
{"compress", 'z', POPT_ARG_NONE, &do_compression, 0, 0, 0 },
{"daemon", 0, POPT_ARG_NONE, &daemon_opt, 0, 0, 0 },
-@@ -1042,6 +1045,9 @@ void server_options(char **args,int *arg
+@@ -1088,6 +1091,9 @@ void server_options(char **args,int *arg
}
}
/* Log-message categories. FLOG is only used on the daemon side to
---- orig/rsync.yo 2004-07-29 16:08:04
+--- orig/rsync.yo 2004-08-03 15:34:32
+++ rsync.yo 2004-07-03 19:27:25
@@ -327,6 +327,7 @@ verb(
-T --temp-dir=DIR create temporary files in directory DIR