mirror of
https://github.com/RsyncProject/rsync.git
synced 2026-10-22 05:44:17 -04:00
If an arg is excluded, don't include its implied dirs.
This commit is contained in:
1 parent
cc911409d6
commit
d1f66d8d79
2 files changed
+7
-2
No files matched your search
@@ -33,6 +33,9 @@ Changes since 3.0.2:
|
||||
(i.e. several hundred TB), warn the user and avoid sending an invalid
|
||||
checksum struct over the wire.
|
||||
|
||||
- If an source arg is excluded, --relative no longer adds the excluded
|
||||
arg's implied dirs to the transfer.
|
||||
|
||||
- Use the overflow_exit() function for overflows, not out_of_memory().
|
||||
|
||||
ENHANCEMENTS:
|
||||
|
||||
@@ -2041,7 +2041,8 @@ struct file_list *send_file_list(int f, int argc, char *argv[])
|
||||
}
|
||||
|
||||
if (inc_recurse && relative_paths && *fbuf) {
|
||||
if ((p = strchr(fbuf+1, '/')) != NULL) {
|
||||
if ((p = strchr(fbuf+1, '/')) != NULL
|
||||
&& !is_excluded(fbuf, S_ISDIR(st.st_mode) != 0, ALL_FILTERS)) {
|
||||
if (p - fbuf == 1 && *fbuf == '.') {
|
||||
if ((fn = strchr(p+1, '/')) != NULL)
|
||||
p = fn;
|
||||
@@ -2051,7 +2052,8 @@ struct file_list *send_file_list(int f, int argc, char *argv[])
|
||||
if (fn == p)
|
||||
continue;
|
||||
}
|
||||
} else if (implied_dirs && (p=strrchr(fbuf,'/')) && p != fbuf) {
|
||||
} else if (implied_dirs && (p=strrchr(fbuf,'/')) && p != fbuf
|
||||
&& !is_excluded(fbuf, S_ISDIR(st.st_mode) != 0, ALL_FILTERS)) {
|
||||
/* Send the implied directories at the start of the
|
||||
* source spec, so we get their permissions right. */
|
||||
send_implied_dirs(f, flist, fbuf, fbuf, p, flags, 0);
|
||||
|
||||
Reference in new issue
Block a user