Add data for 2.6.4.
[rsync/rsync.git] / generator.c
index 9a27c13..b9197c7 100644 (file)
@@ -48,6 +48,7 @@ extern int delete_after;
 extern int module_id;
 extern int ignore_errors;
 extern int remove_sent_files;
+extern int delay_updates;
 extern int update_only;
 extern int opt_ignore_existing;
 extern int inplace;
@@ -337,8 +338,6 @@ void itemize(struct file_struct *file, int ndx, int statret, STRUCT_STAT *st,
        if ((iflags & SIGNIFICANT_ITEM_FLAGS || verbose > 1
          || (xname && *xname)) && !read_batch) {
                if (protocol_version >= 29) {
-                       if (iflags & (ITEM_LOCAL_CHANGE|ITEM_TRANSFER))/* XXX */
-                               iflags |= ITEM_DUMMY_BIT; /* XXX Remove soon */
                        if (ndx >= 0)
                                write_int(sock_f_out, ndx);
                        write_shortint(sock_f_out, iflags);
@@ -507,7 +506,7 @@ static int find_fuzzy(struct file_struct *file, struct file_list *dirlist)
 {
        int fname_len, fname_suf_len;
        const char *fname_suf, *fname = file->basename;
-       uint32 lowest_dist = 0x7FFFFFFF;
+       uint32 lowest_dist = 25 << 16; /* ignore a distance greater than 25 */
        int j, lowest_j = -1;
 
        fname_len = strlen(fname);
@@ -1222,10 +1221,23 @@ void generate_files(int f_out, struct file_list *flist, char *local_name)
                rprintf(FINFO,"generate_files phase=%d\n",phase);
 
        write_int(f_out, -1);
+       /* Reduce round-trip lag-time for a useless delay-updates phase. */
+       if (protocol_version >= 29 && !delay_updates)
+               write_int(f_out, -1);
 
-       /* Read post-redo-phase MSG_DONE and any prior messages. */
+       /* Read MSG_DONE for the redo phase (and any prior messages). */
        get_redo_num(itemizing, code);
 
+       if (protocol_version >= 29) {
+               phase++;
+               if (verbose > 2)
+                       rprintf(FINFO, "generate_files phase=%d\n", phase);
+               if (delay_updates)
+                       write_int(f_out, -1);
+               /* Read MSG_DONE for delay-updates phase & prior messages. */
+               get_redo_num(itemizing, code);
+       }
+
        if (delete_after && !local_name && flist->count > 0)
                do_delete_pass(flist);
 
@@ -1256,12 +1268,6 @@ void generate_files(int f_out, struct file_list *flist, char *local_name)
                io_error |= IOERR_DEL_LIMIT;
        }
 
-       if (protocol_version >= 29) {
-               write_int(f_out, -1);
-               /* Read post-delay-phase MSG_DONE and any prior messages. */
-               get_redo_num(itemizing, code);
-       }
-
        if (verbose > 2)
                rprintf(FINFO,"generate_files finished\n");
 }