summaryrefslogtreecommitdiff
path: root/exclude.c
diff options
context:
space:
mode:
authorWayne Davison <wayned@samba.org>2006-08-31 17:18:24 +0000
committerWayne Davison <wayned@samba.org>2006-08-31 17:18:24 +0000
commit97bf86f8ee5794087e8627b04dd93c7506ae552f (patch)
treeee9ebcc3d4ad81f73ab64eab0a69f63ae4533d63 /exclude.c
parent8c449e62853b141799a80045820b4d07653cefd0 (diff)
downloadrsync-97bf86f8ee5794087e8627b04dd93c7506ae552f.tar.gz
rsync-97bf86f8ee5794087e8627b04dd93c7506ae552f.tar.bz2
rsync-97bf86f8ee5794087e8627b04dd93c7506ae552f.zip
Make sure that --delete-excluded does not elide a per-dir merge
filter file, while still dumping the .cvsignore file from -C.
Diffstat (limited to 'exclude.c')
-rw-r--r--exclude.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/exclude.c b/exclude.c
index fdb5c776..dc1a4754 100644
--- a/exclude.c
+++ b/exclude.c
@@ -1102,7 +1102,8 @@ static void send_rules(int f_out, struct filter_list_struct *flp)
elide = am_sender ? 1 : -1;
if (ent->match_flags & MATCHFLG_RECEIVER_SIDE)
elide = elide ? 0 : am_sender ? -1 : 1;
- else if (delete_excluded && !elide)
+ else if (delete_excluded && !elide
+ && (!(ent->match_flags & MATCHFLG_PERDIR_MERGE) || ent->match_flags & MATCHFLG_CVS_IGNORE))
elide = am_sender ? 1 : -1;
if (elide < 0) {
if (prev)