Matt McCutchen's Web Site
/
rsync
/
rsync.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Decreased the amount of stack needed for each level of directory
[rsync/rsync.git]
/
generator.c
diff --git
a/generator.c
b/generator.c
index
b795f0f
..
0f53891
100644
(file)
--- a/
generator.c
+++ b/
generator.c
@@
-52,7
+52,8
@@
extern int ignore_errors;
extern int remove_sent_files;
extern int delay_updates;
extern int update_only;
extern int remove_sent_files;
extern int delay_updates;
extern int update_only;
-extern int opt_ignore_existing;
+extern int ignore_existing;
+extern int ignore_non_existing;
extern int inplace;
extern int append_mode;
extern int make_backups;
extern int inplace;
extern int append_mode;
extern int make_backups;
@@
-60,6
+61,7
@@
extern int csum_length;
extern int ignore_times;
extern int size_only;
extern OFF_T max_size;
extern int ignore_times;
extern int size_only;
extern OFF_T max_size;
+extern OFF_T min_size;
extern int io_error;
extern int allowed_lull;
extern int sock_f_out;
extern int io_error;
extern int allowed_lull;
extern int sock_f_out;
@@
-75,7
+77,6
@@
extern int link_dest;
extern int whole_file;
extern int list_only;
extern int read_batch;
extern int whole_file;
extern int list_only;
extern int read_batch;
-extern int only_existing;
extern int orig_umask;
extern int safe_symlinks;
extern long block_size; /* "long" because popt can't set an int32. */
extern int orig_umask;
extern int safe_symlinks;
extern long block_size; /* "long" because popt can't set an int32. */
@@
-675,8
+676,7
@@
static void recv_generator(char *fname, struct file_struct *file, int ndx,
stat_errno = errno;
}
stat_errno = errno;
}
- if (only_existing && statret == -1 && stat_errno == ENOENT) {
- /* we only want to update existing files */
+ if (ignore_non_existing && statret == -1 && stat_errno == ENOENT) {
if (verbose > 1) {
rprintf(FINFO, "not creating new %s \"%s\"\n",
S_ISDIR(file->mode) ? "directory" : "file",
if (verbose > 1) {
rprintf(FINFO, "not creating new %s \"%s\"\n",
S_ISDIR(file->mode) ? "directory" : "file",
@@
-815,7
+815,8
@@
static void recv_generator(char *fname, struct file_struct *file, int ndx,
if (statret != 0
|| (st.st_mode & ~CHMOD_BITS) != (file->mode & ~CHMOD_BITS)
|| st.st_rdev != file->u.rdev) {
if (statret != 0
|| (st.st_mode & ~CHMOD_BITS) != (file->mode & ~CHMOD_BITS)
|| st.st_rdev != file->u.rdev) {
- if (delete_item(fname, st.st_mode, DEL_TERSE) < 0)
+ if (statret == 0
+ && delete_item(fname, st.st_mode, DEL_TERSE) < 0)
return;
if (preserve_hard_links && file->link_u.links
&& hard_link_check(file, ndx, fname, -1, &st,
return;
if (preserve_hard_links && file->link_u.links
&& hard_link_check(file, ndx, fname, -1, &st,
@@
-873,8
+874,17
@@
static void recv_generator(char *fname, struct file_struct *file, int ndx,
}
return;
}
}
return;
}
+ if (min_size && file->length < min_size) {
+ if (verbose > 1) {
+ if (the_file_list->count == 1)
+ fname = f_name(file);
+ rprintf(FINFO, "%s is under min-size\n",
+ safe_fname(fname));
+ }
+ return;
+ }
- if (
opt_
ignore_existing && statret == 0) {
+ if (ignore_existing && statret == 0) {
if (verbose > 1)
rprintf(FINFO, "%s exists\n", safe_fname(fname));
return;
if (verbose > 1)
rprintf(FINFO, "%s exists\n", safe_fname(fname));
return;
@@
-1178,8
+1188,8
@@
void generate_files(int f_out, struct file_list *flist, char *local_name)
int lull_mod = allowed_lull * 5;
int need_retouch_dir_times = preserve_times && !omit_dir_times;
int need_retouch_dir_perms = 0;
int lull_mod = allowed_lull * 5;
int need_retouch_dir_times = preserve_times && !omit_dir_times;
int need_retouch_dir_perms = 0;
- int save_
only_existing = only
_existing;
- int save_
opt_ignore_existing = opt_ignore
_existing;
+ int save_
ignore_existing = ignore
_existing;
+ int save_
ignore_non_existing = ignore_non
_existing;
int save_do_progress = do_progress;
int save_make_backups = make_backups;
int save_do_progress = do_progress;
int save_make_backups = make_backups;
@@
-1266,7
+1276,7
@@
void generate_files(int f_out, struct file_list *flist, char *local_name)
phase++;
csum_length = SUM_LENGTH;
phase++;
csum_length = SUM_LENGTH;
-
only_existing = max_size = opt_ignore
_existing = 0;
+
max_size = min_size = ignore_existing = ignore_non
_existing = 0;
update_only = always_checksum = size_only = 0;
ignore_times = 1;
if (append_mode) /* resend w/o append mode */
update_only = always_checksum = size_only = 0;
ignore_times = 1;
if (append_mode) /* resend w/o append mode */
@@
-1288,8
+1298,8
@@
void generate_files(int f_out, struct file_list *flist, char *local_name)
}
phase++;
}
phase++;
-
only_existing = save_only
_existing;
-
opt_ignore_existing = save_opt
_ignore_existing;
+
ignore_non_existing = save_ignore_non
_existing;
+
ignore_existing = save
_ignore_existing;
make_backups = save_make_backups;
if (verbose > 2)
make_backups = save_make_backups;
if (verbose > 2)