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
The --dirs was sending -k instead of -d.
[rsync/rsync.git]
/
flist.c
diff --git
a/flist.c
b/flist.c
index
ac57167
..
5fcd54d
100644
(file)
--- a/
flist.c
+++ b/
flist.c
@@
-531,7
+531,7
@@
void receive_file_entry(struct file_struct **fptr, unsigned short flags,
static gid_t gid;
static char lastname[MAXPATHLEN], *lastdir;
static int lastdir_depth, lastdir_len = -1;
static gid_t gid;
static char lastname[MAXPATHLEN], *lastdir;
static int lastdir_depth, lastdir_len = -1;
- static unsigned int del_heir_name_len =
-1
;
+ static unsigned int del_heir_name_len =
0
;
static int in_del_hier = 0;
char thisname[MAXPATHLEN];
unsigned int l1 = 0, l2 = 0;
static int in_del_hier = 0;
char thisname[MAXPATHLEN];
unsigned int l1 = 0, l2 = 0;
@@
-546,7
+546,7
@@
void receive_file_entry(struct file_struct **fptr, unsigned short flags,
rdev_major = 0;
uid = 0, gid = 0;
*lastname = '\0';
rdev_major = 0;
uid = 0, gid = 0;
*lastname = '\0';
-
del_heir_name_len =
lastdir_len = -1;
+ lastdir_len = -1;
in_del_hier = 0;
return;
}
in_del_hier = 0;
return;
}
@@
-925,7
+925,7
@@
skip_filters:
memcpy(bp, basename, basename_len);
bp += basename_len;
memcpy(bp, basename, basename_len);
bp += basename_len;
-#if
def
HAVE_STRUCT_STAT_ST_RDEV
+#if HAVE_STRUCT_STAT_ST_RDEV
if (preserve_devices && IS_DEVICE(st.st_mode))
file->u.rdev = st.st_rdev;
#endif
if (preserve_devices && IS_DEVICE(st.st_mode))
file->u.rdev = st.st_rdev;
#endif
@@
-1078,6
+1078,7
@@
struct file_list *send_file_list(int f, int argc, char *argv[])
char lastpath[MAXPATHLEN] = "";
struct file_list *flist;
BOOL need_first_push = True;
char lastpath[MAXPATHLEN] = "";
struct file_list *flist;
BOOL need_first_push = True;
+ struct timeval start_tv, end_tv;
int64 start_write;
int use_ff_fd = 0;
int64 start_write;
int use_ff_fd = 0;
@@
-1085,6
+1086,7
@@
struct file_list *send_file_list(int f, int argc, char *argv[])
start_filelist_progress("building file list");
start_write = stats.total_written;
start_filelist_progress("building file list");
start_write = stats.total_written;
+ gettimeofday(&start_tv, NULL);
flist = flist_new(f == -1 ? WITHOUT_HLINK : WITH_HLINK,
"send_file_list");
flist = flist_new(f == -1 ? WITHOUT_HLINK : WITH_HLINK,
"send_file_list");
@@
-1250,10
+1252,23
@@
struct file_list *send_file_list(int f, int argc, char *argv[])
}
if (f != -1) {
}
if (f != -1) {
+ gettimeofday(&end_tv, NULL);
+ stats.flist_buildtime =
+ (int64)(end_tv.tv_sec - start_tv.tv_sec) * 1000
+ + (end_tv.tv_usec - start_tv.tv_usec) / 1000;
+ if (stats.flist_buildtime == 0)
+ stats.flist_buildtime = 1;
+ start_tv = end_tv;
+
send_file_entry(NULL, f, 0);
if (show_filelist_p())
finish_filelist_progress(flist);
send_file_entry(NULL, f, 0);
if (show_filelist_p())
finish_filelist_progress(flist);
+
+ gettimeofday(&end_tv, NULL);
+ stats.flist_xfertime =
+ (int64)(end_tv.tv_sec - start_tv.tv_sec) * 1000
+ + (end_tv.tv_usec - start_tv.tv_usec) / 1000;
}
if (flist->hlink_pool) {
}
if (flist->hlink_pool) {
@@
-1724,8
+1739,10
@@
void delete_in_dir(struct file_list *flist, char *fname)
safe_fname(f));
}
} else {
safe_fname(f));
}
} else {
- delete_file(f, S_ISDIR(mode)
- ? DEL_DIR | DEL_RECURSE : 0);
+ int dflags = delete_during
+ ? DEL_DIR | DEL_FORCE_RECURSE
+ : DEL_DIR | DEL_NO_RECURSE;
+ delete_file(f, S_ISDIR(mode) ? dflags : 0);
}
deletion_count++;
}
}
deletion_count++;
}