Fixed failing hunks.
[rsync/rsync-patches.git] / append.diff
index ad0c25b..951c2c1 100644 (file)
@@ -1,9 +1,9 @@
 This patch adds the --append option, which works like a "resume" mode in
 an ftp client, appending new data onto the end of the files it updates.
 
---- orig/generator.c   2005-02-11 20:25:07
-+++ generator.c        2005-02-11 20:26:31
-@@ -40,6 +40,7 @@ extern int delete_during;
+--- orig/generator.c   2005-02-20 00:02:23
++++ generator.c        2005-02-15 19:31:13
+@@ -45,6 +45,7 @@ extern int delete_during;
  extern int update_only;
  extern int opt_ignore_existing;
  extern int inplace;
@@ -11,7 +11,7 @@ an ftp client, appending new data onto the end of the files it updates.
  extern int make_backups;
  extern int csum_length;
  extern int ignore_times;
-@@ -192,35 +193,42 @@ static void generate_and_send_sums(int f
+@@ -242,35 +243,42 @@ static void generate_and_send_sums(int f
        OFF_T offset = 0;
  
        sum_sizes_sqroot(&sum, len);
@@ -61,7 +61,7 @@ an ftp client, appending new data onto the end of the files it updates.
        }
  
        if (mapbuf)
-@@ -509,6 +517,9 @@ static void recv_generator(char *fname, 
+@@ -729,6 +737,9 @@ static void recv_generator(char *fname, 
                return;
        }
  
@@ -70,17 +70,17 @@ an ftp client, appending new data onto the end of the files it updates.
 +
        if (!compare_dest && fnamecmp_type <= FNAMECMP_BASIS_DIR_HIGH)
                ;
-       else if (unchanged_file(fnamecmp, file, &st)) {
-@@ -527,7 +538,7 @@ prepare_to_open:
+       else if (fnamecmp_type == FNAMECMP_FUZZY)
+@@ -755,7 +766,7 @@ prepare_to_open:
  
        if (dry_run || read_batch)
                goto notify_others;
 -      if (whole_file > 0) {
 +      if (whole_file > 0 && !append_mode) {
-               statret = -1;
+               if (statret == 0)
+                       statret = 1;
                goto notify_others;
-       }
-@@ -664,6 +675,9 @@ void generate_files(int f_out, struct fi
+@@ -921,6 +932,9 @@ void generate_files(int f_out, struct fi
        csum_length = SUM_LENGTH;
        only_existing = max_size = opt_ignore_existing = 0;
        update_only = always_checksum = size_only = 0;
@@ -90,7 +90,7 @@ an ftp client, appending new data onto the end of the files it updates.
        ignore_times = 1;
  
        if (verbose > 2)
---- orig/match.c       2005-01-17 23:11:45
+--- orig/match.c       2005-02-15 19:27:04
 +++ match.c    2005-02-11 20:26:31
 @@ -23,6 +23,7 @@ extern int verbose;
  extern int am_server;
@@ -100,7 +100,7 @@ an ftp client, appending new data onto the end of the files it updates.
  
  int updating_basis_file;
  
-@@ -336,6 +337,21 @@ void match_sums(int f, struct sum_struct
+@@ -334,6 +335,21 @@ void match_sums(int f, struct sum_struct
  
        sum_init(checksum_seed);
  
@@ -122,7 +122,7 @@ an ftp client, appending new data onto the end of the files it updates.
        if (len > 0 && s->count > 0) {
                build_hash_table(s);
  
-@@ -349,7 +365,7 @@ void match_sums(int f, struct sum_struct
+@@ -347,7 +363,7 @@ void match_sums(int f, struct sum_struct
        } else {
                OFF_T j;
                /* by doing this in pieces we avoid too many seeks */
@@ -131,8 +131,8 @@ an ftp client, appending new data onto the end of the files it updates.
                        matched(f, s, buf, j, -2);
                matched(f, s, buf, len, -1);
        }
---- orig/options.c     2005-02-11 18:21:45
-+++ options.c  2005-02-11 20:31:32
+--- orig/options.c     2005-02-20 00:02:23
++++ options.c  2005-02-16 15:36:40
 @@ -39,6 +39,7 @@ int make_backups = 0;
   **/
  int whole_file = -1;
@@ -141,16 +141,15 @@ an ftp client, appending new data onto the end of the files it updates.
  int archive_mode = 0;
  int keep_dirlinks = 0;
  int copy_links = 0;
-@@ -150,7 +151,7 @@ static int daemon_opt;   /* sets am_daem
- static int F_option_cnt = 0;
+@@ -156,6 +157,7 @@ static int F_option_cnt = 0;
  static int modify_window_set;
- static int refused_verbose, refused_delete, refused_archive_part;
--static int refused_partial, refused_progress;
-+static int refused_partial, refused_progress, refused_inplace;
+ static int refused_delete, refused_archive_part;
+ static int refused_partial, refused_progress, refused_delete_before;
++static int refused_inplace;
  static char *dest_option = NULL;
  static char *max_size_arg;
  static char partialdir_for_delayupdate[] = ".~tmp~";
-@@ -260,6 +261,7 @@ void usage(enum logcode F)
+@@ -265,6 +267,7 @@ void usage(enum logcode F)
    rprintf(F,"     --suffix=SUFFIX         set backup suffix (default %s w/o --backup-dir)\n",BACKUP_SUFFIX);
    rprintf(F," -u, --update                skip files that are newer on the receiver\n");
    rprintf(F,"     --inplace               update destination files in-place (SEE MAN PAGE)\n");
@@ -158,15 +157,15 @@ an ftp client, appending new data onto the end of the files it updates.
    rprintf(F," -d, --dirs                  transfer directories without recursing\n");
    rprintf(F," -l, --links                 copy symlinks as symlinks\n");
    rprintf(F," -L, --copy-links            transform symlink into referent file/dir\n");
-@@ -383,6 +385,7 @@ static struct poptOption long_options[] 
+@@ -390,6 +393,7 @@ static struct poptOption long_options[] 
    {"links",           'l', POPT_ARG_NONE,   &preserve_links, 0, 0, 0 },
    {"copy-links",      'L', POPT_ARG_NONE,   &copy_links, 0, 0, 0 },
    {"keep-dirlinks",   'K', POPT_ARG_NONE,   &keep_dirlinks, 0, 0, 0 },
 +  {"append",           0,  POPT_ARG_VAL,    &append_mode, 1, 0, 0 },
    {"whole-file",      'W', POPT_ARG_VAL,    &whole_file, 1, 0, 0 },
    {"no-whole-file",    0,  POPT_ARG_VAL,    &whole_file, 0, 0, 0 },
-   {"copy-unsafe-links", 0, POPT_ARG_NONE,   &copy_unsafe_links, 0, 0, 0 },
-@@ -555,6 +558,8 @@ static void set_refuse_options(char *bp)
+   {"copy-unsafe-links",0,  POPT_ARG_NONE,   &copy_unsafe_links, 0, 0, 0 },
+@@ -562,6 +566,8 @@ static void set_refuse_options(char *bp)
                                                refused_partial = op->val;
                                        else if (wildmatch("progress", op->longName))
                                                refused_progress = op->val;
@@ -175,7 +174,7 @@ an ftp client, appending new data onto the end of the files it updates.
                                        break;
                                }
                                if (!is_wild)
-@@ -1060,6 +1065,14 @@ int parse_arguments(int *argc, const cha
+@@ -1099,6 +1105,14 @@ int parse_arguments(int *argc, const cha
                        bwlimit_writemax = 512;
        }
  
@@ -190,7 +189,7 @@ an ftp client, appending new data onto the end of the files it updates.
        if (delay_updates && !partial_dir)
                partial_dir = partialdir_for_delayupdate;
  
-@@ -1346,7 +1359,9 @@ void server_options(char **args,int *arg
+@@ -1396,7 +1410,9 @@ void server_options(char **args,int *arg
        if (opt_ignore_existing && am_sender)
                args[ac++] = "--ignore-existing";
  
@@ -201,7 +200,7 @@ an ftp client, appending new data onto the end of the files it updates.
                args[ac++] = "--inplace";
  
        if (tmpdir) {
---- orig/receiver.c    2005-02-11 10:53:14
+--- orig/receiver.c    2005-02-20 00:16:35
 +++ receiver.c 2005-02-11 20:26:32
 @@ -44,6 +44,7 @@ extern int cleanup_got_literal;
  extern int module_id;
@@ -211,7 +210,7 @@ an ftp client, appending new data onto the end of the files it updates.
  extern int keep_partial;
  extern int checksum_seed;
  extern int inplace;
-@@ -164,6 +165,28 @@ static int receive_data(int f_in, char *
+@@ -169,6 +170,28 @@ static int receive_data(int f_in, char *
  
        sum_init(checksum_seed);
  
@@ -240,7 +239,7 @@ an ftp client, appending new data onto the end of the files it updates.
        while ((i = recv_token(f_in, &data)) != 0) {
                if (do_progress)
                        show_progress(offset, total_size);
-@@ -325,6 +348,7 @@ int recv_files(int f_in, struct file_lis
+@@ -363,6 +386,7 @@ int recv_files(int f_in, struct file_lis
                        send_msg(MSG_DONE, "", 0);
                        if (keep_partial && !partial_dir)
                                make_backups = 0; /* prevents double backup */
@@ -248,7 +247,7 @@ an ftp client, appending new data onto the end of the files it updates.
                        continue;
                }
  
---- orig/rsync.yo      2005-02-11 10:53:15
+--- orig/rsync.yo      2005-02-19 09:27:49
 +++ rsync.yo   2005-02-11 20:36:38
 @@ -309,6 +309,7 @@ to the detailed description below for a 
       --suffix=SUFFIX         backup suffix (default ~ w/o --backup-dir)
@@ -258,7 +257,7 @@ an ftp client, appending new data onto the end of the files it updates.
   -d, --dirs                  transfer directories without recursing
   -l, --links                 copy symlinks as symlinks
   -L, --copy-links            transform symlink into referent file/dir
-@@ -553,6 +554,14 @@ should not use this option to update fil
+@@ -564,6 +565,14 @@ should not use this option to update fil
  rsync will be unable to update a file in-place that is not writable by the
  receiving user.
  
@@ -273,17 +272,17 @@ an ftp client, appending new data onto the end of the files it updates.
  dit(bf(-d, --dirs)) Tell the sending side to include any directories that
  are encountered.  Unlike bf(--recursive), a directory's contents are not copied
  unless the directory was specified on the command-line as either "." or a
---- orig/sender.c      2005-02-03 02:04:20
-+++ sender.c   2005-02-11 20:26:32
-@@ -30,6 +30,7 @@ extern int protocol_version;
+--- orig/sender.c      2005-02-20 00:16:35
++++ sender.c   2005-02-20 00:17:01
+@@ -28,6 +28,7 @@ extern int log_format_has_i;
+ extern int daemon_log_format_has_i;
+ extern int csum_length;
+ extern int io_error;
++extern int append_mode;
+ extern int protocol_version;
  extern int updating_basis_file;
  extern int make_backups;
- extern int inplace;
-+extern int append_mode;
- extern struct stats stats;
-@@ -62,6 +63,13 @@ static struct sum_struct *receive_sums(i
+@@ -66,6 +67,13 @@ static struct sum_struct *receive_sums(i
                        (double)s->count, (long)s->blength, (long)s->remainder);
        }
  
@@ -297,7 +296,7 @@ an ftp client, appending new data onto the end of the files it updates.
        if (s->count == 0)
                return(s);
  
-@@ -127,6 +135,7 @@ void send_files(struct file_list *flist,
+@@ -133,6 +141,7 @@ void send_files(struct file_list *flist,
                                /* For inplace: redo phase turns off the backup
                                 * flag so that we do a regular inplace send. */
                                make_backups = 0;