1#! /bin/sh 2 3# Copyright (C) 2005 by Wayne Davison <wayned@samba.org> 4 5# This program is distributable under the terms of the GNU GPL (see 6# COPYING). 7 8# Test rsync handling of various delete directives. 9 10. "$suitedir/rsync.fns" 11 12hands_setup 13 14makepath "$chkdir" 15 16# Create two chk dirs, one with a copy of the source files, and one with 17# what we expect to be left behind by the copy using --remove-sent-files. 18$RSYNC -av "$fromdir/" "$chkdir/copy/" 19$RSYNC -av -f 'exclude,! */' "$fromdir/" "$chkdir/empty/" 20 21checkit "$RSYNC -avv --remove-sent-files \ 22 \"$fromdir/\" \"$todir/\"" "$chkdir/copy" "$todir" 23 24diff -r "$chkdir/empty" "$fromdir" 25 26# Make sure that "P" but not "-" per-dir merge-file filters take effect with 27# --delete-excluded. 28cat >"$todir/filters" <<EOF 29P foo 30- bar 31EOF 32touch "$todir/foo" "$todir/bar" "$todir/baz" 33 34$RSYNC -r --exclude=baz --filter=': filters' --delete-excluded "$fromdir/" "$todir/" 35 36test -f "$todir/foo" || test_fail "rsync deleted $todir/foo" 37test -f "$todir/bar" && test_fail "rsync did not delete $todir/bar" 38test -f "$todir/baz" && test_fail "rsync did not delete $todir/baz" 39 40# The script would have aborted on error, so getting here means we've won. 41exit 0 42