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
Matt's recent improvements, slightly edited.
[rsync/rsync-patches.git]
/
early-checksum.diff
diff --git
a/early-checksum.diff
b/early-checksum.diff
index
eb2c0ef
..
d8e1f0d
100644
(file)
--- a/
early-checksum.diff
+++ b/
early-checksum.diff
@@
-17,18
+17,18
@@
To use this patch, run these commands for a successful build:
--- old/flist.c
+++ new/flist.c
@@ -33,6 +33,7 @@ extern int am_sender;
--- old/flist.c
+++ new/flist.c
@@ -33,6 +33,7 @@ extern int am_sender;
- extern int inc
remental
;
+ extern int inc
_recurse
;
extern int do_progress;
extern int always_checksum;
+extern int pre_checksum;
extern int module_id;
extern int ignore_errors;
extern int numeric_ids;
extern int do_progress;
extern int always_checksum;
+extern int pre_checksum;
extern int module_id;
extern int ignore_errors;
extern int numeric_ids;
-@@ -8
47,6 +848
,15 @@ static struct file_struct *recv_file_ent
+@@ -8
59,6 +860
,15 @@ static struct file_struct *recv_file_ent
memcpy(bp, F_SUM(first), checksum_len);
} else
read_buf(f, bp, checksum_len);
memcpy(bp, F_SUM(first), checksum_len);
} else
read_buf(f, bp, checksum_len);
-+ if (pre_checksum &&
sum_len
) {
++ if (pre_checksum &&
bp != tmp_sum
) {
+ STRUCT_STAT st;
+ char *fname = f_name(file, NULL);
+ if (stat(fname, &st) == 0 && st.st_size == file_length) {
+ STRUCT_STAT st;
+ char *fname = f_name(file, NULL);
+ if (stat(fname, &st) == 0 && st.st_size == file_length) {
@@
-39,7
+39,7
@@
To use this patch, run these commands for a successful build:
+ }
}
+ }
}
- return file;
+ #ifdef SUPPORT_ACLS
--- old/generator.c
+++ new/generator.c
@@ -73,6 +73,7 @@ extern int protocol_version;
--- old/generator.c
+++ new/generator.c
@@ -73,6 +73,7 @@ extern int protocol_version;
@@
-50,7
+50,7
@@
To use this patch, run these commands for a successful build:
extern int checksum_len;
extern char *partial_dir;
extern char *basis_dir[];
extern int checksum_len;
extern char *partial_dir;
extern char *basis_dir[];
-@@ -5
69,7 +570,8 @@ void itemize(struct file_struct *file, i
+@@ -5
90,7 +591,8 @@ void itemize(const char *fname, struct f
/* Perform our quick-check heuristic for determining if a file is unchanged. */
/* Perform our quick-check heuristic for determining if a file is unchanged. */
@@
-60,7
+60,7
@@
To use this patch, run these commands for a successful build:
{
if (st->st_size != F_LENGTH(file))
return 0;
{
if (st->st_size != F_LENGTH(file))
return 0;
-@@ -5
78,6 +580
,8 @@ int unchanged_file(char *fn, struct file
+@@ -5
99,6 +601
,8 @@ int unchanged_file(char *fn, struct file
of the file time to determine whether to sync */
if (always_checksum > 0 && S_ISREG(st->st_mode)) {
char sum[MD4_SUM_LENGTH];
of the file time to determine whether to sync */
if (always_checksum > 0 && S_ISREG(st->st_mode)) {
char sum[MD4_SUM_LENGTH];
@@
-69,38
+69,38
@@
To use this patch, run these commands for a successful build:
file_checksum(fn, sum, st->st_size);
return memcmp(sum, F_SUM(file), checksum_len) == 0;
}
file_checksum(fn, sum, st->st_size);
return memcmp(sum, F_SUM(file), checksum_len) == 0;
}
-@@ -81
6,7 +820
,7 @@ static int try_dests_reg(struct file_str
+@@ -81
9,7 +823
,7 @@ static int try_dests_reg(struct file_str
match_level = 1;
/* FALL THROUGH */
case 1:
match_level = 1;
/* FALL THROUGH */
case 1:
-- if (!unchanged_file(cmpbuf, file,
stp
))
-+ if (!unchanged_file(cmpbuf, 0, file,
stp
))
+- if (!unchanged_file(cmpbuf, file,
&sxp->st
))
++ if (!unchanged_file(cmpbuf, 0, file,
&sxp->st
))
continue;
best_match = j;
match_level = 2;
continue;
best_match = j;
match_level = 2;
-@@ -15
08,7 +1512
,7 @@ static void recv_generator(char *fname,
+@@ -15
24,7 +1528
,7 @@ static void recv_generator(char *fname,
;
else if (fnamecmp_type == FNAMECMP_FUZZY)
;
;
else if (fnamecmp_type == FNAMECMP_FUZZY)
;
-- else if (unchanged_file(fnamecmp, file, &st)) {
-+ else if (unchanged_file(fnamecmp, fnamecmp_type, file, &st)) {
+- else if (unchanged_file(fnamecmp, file, &s
x.s
t)) {
++ else if (unchanged_file(fnamecmp, fnamecmp_type, file, &s
x.s
t)) {
if (partialptr) {
do_unlink(partialptr);
handle_partial_dir(partialptr, PDIR_DELETE);
--- old/hlink.c
+++ new/hlink.c
if (partialptr) {
do_unlink(partialptr);
handle_partial_dir(partialptr, PDIR_DELETE);
--- old/hlink.c
+++ new/hlink.c
-@@ -38
2,7 +382
,7 @@ int hard_link_check(struct file_struct *
+@@ -38
4,7 +384
,7 @@ int hard_link_check(struct file_struct *
}
break;
}
}
break;
}
-- if (!unchanged_file(cmpbuf, file, &alt_st))
-+ if (!unchanged_file(cmpbuf, 0, file, &alt_st))
+- if (!unchanged_file(cmpbuf, file, &alt_s
x.s
t))
++ if (!unchanged_file(cmpbuf, 0, file, &alt_s
x.s
t))
continue;
statret = 1;
continue;
statret = 1;
- *stp = alt_st;
+ if (unchanged_attrs(cmpbuf, file, &alt_sx))
--- old/main.c
+++ new/main.c
--- old/main.c
+++ new/main.c
-@@ -4
6,6 +46
,7 @@ extern int module_id;
+@@ -4
5,6 +45
,7 @@ extern int module_id;
extern int copy_links;
extern int copy_dirlinks;
extern int keep_dirlinks;
extern int copy_links;
extern int copy_dirlinks;
extern int keep_dirlinks;
@@
-108,7
+108,7
@@
To use this patch, run these commands for a successful build:
extern int preserve_hard_links;
extern int protocol_version;
extern int file_total;
extern int preserve_hard_links;
extern int protocol_version;
extern int file_total;
-@@ -7
3,6 +74
,9 @@ extern char *password_file;
+@@ -7
2,6 +73
,9 @@ extern char *password_file;
extern char curr_dir[MAXPATHLEN];
extern struct filter_list_struct server_filter_list;
extern char curr_dir[MAXPATHLEN];
extern struct filter_list_struct server_filter_list;
@@
-166,7
+166,7
@@
To use this patch, run these commands for a successful build:
if (write_batch && !am_server)
start_write_batch(f_in);
flist = recv_file_list(f_in);
if (write_batch && !am_server)
start_write_batch(f_in);
flist = recv_file_list(f_in);
- if (inc
remental
&& file_total == 1)
+ if (inc
_recurse
&& file_total == 1)
recv_additional_file_list(f_in);
+ if (pre_checksum)
recv_additional_file_list(f_in);
+ if (pre_checksum)
@@
-177,7
+177,7
@@
To use this patch, run these commands for a successful build:
--- old/rsync.h
+++ new/rsync.h
--- old/rsync.h
+++ new/rsync.h
-@@ -7
1,6 +71
,7 @@
+@@ -7
0,6 +70
,7 @@
#define FLAG_HLINK_LAST (1<<7) /* receiver/generator */
#define FLAG_HLINK_DONE (1<<8) /* receiver/generator */
#define FLAG_LENGTH64 (1<<9) /* sender/receiver/generator */
#define FLAG_HLINK_LAST (1<<7) /* receiver/generator */
#define FLAG_HLINK_DONE (1<<8) /* receiver/generator */
#define FLAG_LENGTH64 (1<<9) /* sender/receiver/generator */