Matt McCutchen's Web Site
/
rsync
/
rsync-patches.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Updated to work with latest io.c changes.
[rsync/rsync-patches.git]
/
early-checksum.diff
diff --git
a/early-checksum.diff
b/early-checksum.diff
index
9341093
..
f64037d
100644
(file)
--- a/
early-checksum.diff
+++ b/
early-checksum.diff
@@
-8,8
+8,8
@@
to its checksum pass during its normal find-the-different-files pass.
I have benchmarked this a little, and it appears to slow things down
for a local copy, so the old algorithm is used for local copies.
I have benchmarked this a little, and it appears to slow things down
for a local copy, so the old algorithm is used for local copies.
---- o
rig/flist.c 2006-01-17 02:15:59
-+++
flist.c 2005-09-16 16:41:25
+--- o
ld/flist.c
++++
new/flist.c
@@ -36,6 +36,7 @@ extern int am_daemon;
extern int am_sender;
extern int do_progress;
@@ -36,6 +36,7 @@ extern int am_daemon;
extern int am_sender;
extern int do_progress;
@@
-18,7
+18,7
@@
for a local copy, so the old algorithm is used for local copies.
extern int module_id;
extern int ignore_errors;
extern int numeric_ids;
extern int module_id;
extern int ignore_errors;
extern int numeric_ids;
-@@ -7
06,6 +707
,16 @@ static struct file_struct *receive_file_
+@@ -7
11,6 +712
,16 @@ static struct file_struct *receive_file_
sum = empty_sum;
}
read_buf(f, sum, checksum_len);
sum = empty_sum;
}
read_buf(f, sum, checksum_len);
@@
-34,10
+34,10
@@
for a local copy, so the old algorithm is used for local copies.
+ }
}
+ }
}
- if (!preserve_perms) {
---- o
rig/generator.c 2006-01-14 20:27:09
-+++
generator.c 2005-12-15 23:16:48
-@@ -
69,6 +69
,7 @@ extern int ignore_timeout;
+ return file;
+--- o
ld/generator.c
++++
new/generator.c
+@@ -
72,6 +72
,7 @@ extern int ignore_timeout;
extern int protocol_version;
extern int fuzzy_basis;
extern int always_checksum;
extern int protocol_version;
extern int fuzzy_basis;
extern int always_checksum;
@@
-45,7
+45,7
@@
for a local copy, so the old algorithm is used for local copies.
extern int checksum_len;
extern char *partial_dir;
extern char *basis_dir[];
extern int checksum_len;
extern char *partial_dir;
extern char *basis_dir[];
-@@ -37
6,7 +377
,8 @@ void itemize(struct file_struct *file, i
+@@ -37
7,7 +378
,8 @@ void itemize(struct file_struct *file, i
/* Perform our quick-check heuristic for determining if a file is unchanged. */
/* Perform our quick-check heuristic for determining if a file is unchanged. */
@@
-55,7
+55,7
@@
for a local copy, so the old algorithm is used for local copies.
{
if (st->st_size != file->length)
return 0;
{
if (st->st_size != file->length)
return 0;
-@@ -38
5,6 +387
,8 @@ int unchanged_file(char *fn, struct file
+@@ -38
6,6 +388
,8 @@ int unchanged_file(char *fn, struct file
of the file time to determine whether to sync */
if (always_checksum && S_ISREG(st->st_mode)) {
char sum[MD4_SUM_LENGTH];
of the file time to determine whether to sync */
if (always_checksum && S_ISREG(st->st_mode)) {
char sum[MD4_SUM_LENGTH];
@@
-64,7
+64,7
@@
for a local copy, so the old algorithm is used for local copies.
file_checksum(fn, sum, st->st_size);
return memcmp(sum, file->u.sum, checksum_len) == 0;
}
file_checksum(fn, sum, st->st_size);
return memcmp(sum, file->u.sum, checksum_len) == 0;
}
-@@ -62
2,7 +626
,7 @@ static int try_dests_reg(struct file_str
+@@ -62
3,7 +627
,7 @@ static int try_dests_reg(struct file_str
match_level = 1;
/* FALL THROUGH */
case 1:
match_level = 1;
/* FALL THROUGH */
case 1:
@@
-73,7
+73,7
@@
for a local copy, so the old algorithm is used for local copies.
continue;
best_match = j;
match_level = 2;
continue;
best_match = j;
match_level = 2;
-@@ -11
42,7 +1146
,7 @@ static void recv_generator(char *fname,
+@@ -11
59,7 +1163
,7 @@ static void recv_generator(char *fname,
;
else if (fnamecmp_type == FNAMECMP_FUZZY)
;
;
else if (fnamecmp_type == FNAMECMP_FUZZY)
;
@@
-82,8
+82,8
@@
for a local copy, so the old algorithm is used for local copies.
if (partialptr) {
do_unlink(partialptr);
handle_partial_dir(partialptr, PDIR_DELETE);
if (partialptr) {
do_unlink(partialptr);
handle_partial_dir(partialptr, PDIR_DELETE);
---- o
rig/hlink.c 2006-01-14 20:27:09
-+++
hlink.c 2005-12-15 23:17:31
+--- o
ld/hlink.c
++++
new/hlink.c
@@ -210,7 +210,7 @@ int hard_link_check(struct file_struct *
itemizing = code = 0;
break;
@@ -210,7 +210,7 @@ int hard_link_check(struct file_struct *
itemizing = code = 0;
break;
@@
-93,9
+93,9
@@
for a local copy, so the old algorithm is used for local copies.
continue;
statret = 1;
st = &st3;
continue;
statret = 1;
st = &st3;
---- o
rig/main.c 2006-01-15 14:46:15
-+++
main.c 2005-11-07 05:00:49
-@@ -4
5,6 +45
,7 @@ extern int copy_links;
+--- o
ld/main.c
++++
new/main.c
+@@ -4
4,6 +44
,7 @@ extern int copy_links;
extern int keep_dirlinks;
extern int preserve_hard_links;
extern int protocol_version;
extern int keep_dirlinks;
extern int preserve_hard_links;
extern int protocol_version;
@@
-103,18
+103,17
@@
for a local copy, so the old algorithm is used for local copies.
extern int recurse;
extern int relative_paths;
extern int rsync_port;
extern int recurse;
extern int relative_paths;
extern int rsync_port;
-@@ -
60,8 +61,10
@@ extern char *filesfrom_host;
+@@ -
59,7 +60,9
@@ extern char *filesfrom_host;
extern char *rsync_path;
extern char *shell_cmd;
extern char *batch_name;
+extern char curr_dir[MAXPATHLEN];
extern char *rsync_path;
extern char *shell_cmd;
extern char *batch_name;
+extern char curr_dir[MAXPATHLEN];
- int local_server = 0;
+int pre_checksum = 0;
+int pre_checksum = 0;
+ int local_server = 0;
+ mode_t orig_umask = 0;
struct file_list *the_file_list;
struct file_list *the_file_list;
-
- /* There's probably never more than at most 2 outstanding child processes,
-@@ -710,6 +713,7 @@ static void do_server_recv(int f_in, int
+@@ -717,6 +720,7 @@ static void do_server_recv(int f_in, int
struct file_list *flist;
char *local_name = NULL;
char *dir = NULL;
struct file_list *flist;
char *local_name = NULL;
char *dir = NULL;
@@
-122,7
+121,7
@@
for a local copy, so the old algorithm is used for local copies.
int save_verbose = verbose;
if (filesfrom_fd >= 0) {
int save_verbose = verbose;
if (filesfrom_fd >= 0) {
-@@ -7
53,6 +757
,10 @@ static void do_server_recv(int f_in, int
+@@ -7
60,6 +764
,10 @@ static void do_server_recv(int f_in, int
filesfrom_fd = -1;
}
filesfrom_fd = -1;
}
@@
-133,7
+132,7
@@
for a local copy, so the old algorithm is used for local copies.
flist = recv_file_list(f_in);
verbose = save_verbose;
if (!flist) {
flist = recv_file_list(f_in);
verbose = save_verbose;
if (!flist) {
-@@ -76
1,6 +769
,9 @@ static void do_server_recv(int f_in, int
+@@ -76
8,6 +776
,9 @@ static void do_server_recv(int f_in, int
}
the_file_list = flist;
}
the_file_list = flist;
@@
-143,7
+142,7
@@
for a local copy, so the old algorithm is used for local copies.
if (argc > 0)
local_name = get_local_name(flist,argv[0]);
if (argc > 0)
local_name = get_local_name(flist,argv[0]);
-@@ -8
09,6 +82
0,7 @@ int client_run(int f_in, int f_out, pid_
+@@ -8
19,6 +83
0,7 @@ int client_run(int f_in, int f_out, pid_
{
struct file_list *flist = NULL;
int exit_code = 0, exit_code2 = 0;
{
struct file_list *flist = NULL;
int exit_code = 0, exit_code2 = 0;
@@
-151,7
+150,7
@@
for a local copy, so the old algorithm is used for local copies.
char *local_name = NULL;
cleanup_child_pid = pid;
char *local_name = NULL;
cleanup_child_pid = pid;
-@@ -8
80,11 +892
,18 @@ int client_run(int f_in, int f_out, pid_
+@@ -8
93,11 +905
,18 @@ int client_run(int f_in, int f_out, pid_
filesfrom_fd = -1;
}
filesfrom_fd = -1;
}
@@
-170,13
+169,13
@@
for a local copy, so the old algorithm is used for local copies.
if (flist && flist->count > 0) {
local_name = get_local_name(flist, argv[0]);
if (flist && flist->count > 0) {
local_name = get_local_name(flist, argv[0]);
---- o
rig/rsync.h 2006-01-14 20:27:10
-+++
rsync.h 2005-09-16 16:41:26
+--- o
ld/rsync.h
++++
new/rsync.h
@@ -64,6 +64,7 @@
#define FLAG_DEL_HERE (1<<3) /* receiver/generator */
@@ -64,6 +64,7 @@
#define FLAG_DEL_HERE (1<<3) /* receiver/generator */
- #define FLAG_SENT (1<<3) /* sender */
#define FLAG_HLINK_TOL (1<<4) /* receiver/generator */
#define FLAG_HLINK_TOL (1<<4) /* receiver/generator */
-+#define FLAG_SUM_DIFFERS (1<<5) /* receiver/generator */
+ #define FLAG_NO_FUZZY (1<<5) /* generator */
++#define FLAG_SUM_DIFFERS (1<<6) /* receiver/generator */
/* update this if you make incompatible changes */
#define PROTOCOL_VERSION 29
/* update this if you make incompatible changes */
#define PROTOCOL_VERSION 29