Matt,

It seems that the problem is not really solved :-(

If I understand correctly, I have to send the filter file to the receiver, so that it can be used for deletion phase, right?
So I added --filter='+ /rsync-filter' to my options.

That is, I start
rsync -rltgoDuvR --delete-after --delete-excluded --filter='+ /rsync-filter' --filter=': ./rsync-filter

My top-level rsync-filter contains:
- /r4*/
P /r3*
+ /some-other-dir/
- /*

Now, none of /r3* and /r4* is deleted, why?

If I restart the same command, but I remove -filter='+ /rsync-filter',
nothing is deleted either, not even /rsync-filter.
If I remove /rsync-filter manually, and restart the same last command,
then /r3* and /r4* are removed.

I don't understand why?

Thanks,

Christophe.

Matt McCutchen wrote:
I squished the bug!  Attached is a patch.  The name stands for "Do Not
Elide Merge Files on a Local Receiver with --delete-excluded".

Matt


------------------------------------------------------------------------

### Eclipse Workspace Patch 1.0
#P rsync
Index: exclude.c
===================================================================
RCS file: /cvsroot/rsync/exclude.c,v
retrieving revision 1.135
diff -u -r1.135 exclude.c
--- exclude.c   12 Aug 2006 16:22:03 -0000      1.135
+++ exclude.c   31 Aug 2006 00:07:14 -0000
@@ -1102,7 +1102,8 @@
                        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 (!(ent->match_flags & MATCHFLG_MERGE_FILE)
+                               && delete_excluded && !elide)
                        elide = am_sender ? 1 : -1;
                if (elide < 0) {
                        if (prev)

--
To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html

Reply via email to