X-Git-Url: https://mattmccutchen.net/rsync/rsync-patches.git/blobdiff_plain/7f0bf1cb30e4c9cb751903ae1e7b235760bcfd00..e2e42a01ba5a2258edf1510280bb83864a0c8748:/checksum-updating.diff diff --git a/checksum-updating.diff b/checksum-updating.diff index dab490a..bea59fa 100644 --- a/checksum-updating.diff +++ b/checksum-updating.diff @@ -433,16 +433,16 @@ diff --git a/flist.c b/flist.c if (f >= 0 && recurse && !divert_dirs) { int i, end = flist->used - 1; /* send_if_directory() bumps flist->used, so use "end". */ -@@ -2435,6 +2651,9 @@ struct file_list *send_file_list(int f, int argc, char *argv[]) - } +@@ -2436,6 +2652,9 @@ struct file_list *send_file_list(int f, int argc, char *argv[]) } else flist_eof = 1; -+ + + if (checksum_files & CSF_UPDATE && flist_eof) + reset_checksum_cache(0); /* writes any last updates */ - ++ return flist; } + diff --git a/generator.c b/generator.c --- a/generator.c +++ b/generator.c @@ -463,7 +463,7 @@ diff --git a/generator.c b/generator.c else file_checksum(fn, st->st_size, sum); return memcmp(sum, F_SUM(file), checksum_len) == 0; -@@ -1365,7 +1366,8 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx, +@@ -1366,7 +1367,8 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx, fuzzy_dirlist = get_dirlist(fnamecmpbuf, -1, 1); } if (checksum_files) { @@ -473,7 +473,7 @@ diff --git a/generator.c b/generator.c } need_new_dirscan = 0; } -@@ -1515,6 +1517,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx, +@@ -1516,6 +1518,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx, else change_local_filter_dir(fname, strlen(fname), F_DEPTH(file)); } @@ -481,7 +481,7 @@ diff --git a/generator.c b/generator.c goto cleanup; } -@@ -1807,6 +1810,8 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx, +@@ -1808,6 +1811,8 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx, handle_partial_dir(partialptr, PDIR_DELETE); } set_file_attrs(fname, file, &sx, NULL, maybe_ATTRS_REPORT); @@ -490,7 +490,7 @@ diff --git a/generator.c b/generator.c if (itemizing) itemize(fnamecmp, file, ndx, statret, &sx, 0, 0, NULL); #ifdef SUPPORT_HARD_LINKS -@@ -2243,6 +2248,7 @@ void generate_files(int f_out, const char *local_name) +@@ -2250,6 +2255,7 @@ void generate_files(int f_out, const char *local_name) } else change_local_filter_dir(fbuf, strlen(fbuf), F_DEPTH(fp)); } @@ -498,7 +498,7 @@ diff --git a/generator.c b/generator.c } for (i = cur_flist->low; i <= cur_flist->high; i++) { struct file_struct *file = cur_flist->sorted[i]; -@@ -2323,6 +2329,9 @@ void generate_files(int f_out, const char *local_name) +@@ -2333,6 +2339,9 @@ void generate_files(int f_out, const char *local_name) wait_for_receiver(); } @@ -595,7 +595,7 @@ diff --git a/receiver.c b/receiver.c diff --git a/rsync.h b/rsync.h --- a/rsync.h +++ b/rsync.h -@@ -871,6 +871,8 @@ typedef struct { +@@ -874,6 +874,8 @@ typedef struct { #define CSF_ENABLE (1<<1) #define CSF_LAX (1<<2)