CVS update: rsync

Matt McCutchen hashproduct+rsync at gmail.com
Sun Mar 4 14:42:15 GMT 2007


On 3/2/07, Wayne Davison <wayned at samba.org> wrote:
> Make the auto-generated protect filters use the perishable flag so
> that they don't stop a vanished directory from being removed.

1. I don't think the --backup rule should be perishable.  If I delete
an entire directory from the source, I would expect the receiver to
back up the files inside and not discard the backups just because I
deleted the whole directory.

2. The filters added in setup_protocol in compat.c don't seem to be
taking effect on local rsyncs.  See this run of CVS rsync to which I
added some debugging output:

[matt at mattlaptop backup]$ ~/rsync/rsync/rsync -in -vv -a --backup
--del src/ dest/
Parsed rule Pp *~     <-- setup_protocol
am_sender is 1, filter_list.head is 8878ac8
sending incremental file list
testing is_excluded .
testing is_excluded dir
am_sender is 1, filter_list.head is 0   <-- I assume the sender elided
the protect rule.
testing is_excluded dir/foo
am_sender is 1, filter_list.head is 0
delta-transmission disabled for local transfer or --whole-file
.d        ./
testing is_excluded dir
am_sender is 0, filter_list.head is 0    <-- ** Receiving side doesn't
have the rule!
.d        dir/
testing is_excluded dir/foo
am_sender is 0, filter_list.head is 0
testing is_excluded dir/foo~
am_sender is 0, filter_list.head is 0
*deleting dir/foo~   <-- And consequently the receiver deletes the backup file.
.f        dir/foo
total: matches=0  hash_hits=0  false_alarms=0 data=0

sent 94 bytes  received 22 bytes  232.00 bytes/sec
total size is 4  speedup is 0.03

I think this is because setup_protocol runs after the receiving side
is forked off, so it is too late for the receiving side to inherit the
filters.

Matt


More information about the rsync mailing list