X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/093acc5dadb10f18ef4ede9e0d8c6b1827d1794a..f9e5a0cde204b56a4dc77eae156c162a72f6d5a9:/testsuite/exclude.test diff --git a/testsuite/exclude.test b/testsuite/exclude.test index 1e4aa896..3b26c91c 100644 --- a/testsuite/exclude.test +++ b/testsuite/exclude.test @@ -10,25 +10,34 @@ # Test some of the more obscure wildcard handling of exclude/include # processing. -. $srcdir/testsuite/rsync.fns +. "$suitedir/rsync.fns" set -x -# Build some files/dirs/links to copy +HOME="$scratchdir" +CVSIGNORE='*.junk' +export HOME CVSIGNORE -fromdir="$scratchdir/from" -todir="$scratchdir/to" -chkdir="$scratchdir/chk" +# Build some files/dirs/links to copy +echo home-cvs-exclude >"$scratchdir"/.cvsignore makepath "$fromdir/foo/down/to/you" makepath "$fromdir/bar/down/to/foo/too" makepath "$fromdir/mid/for/foo/and/that/is/who" echo kept >"$fromdir/foo/file1" echo removed >"$fromdir/foo/file2" +echo cvsout >"$fromdir/foo/file2.old" +echo cvsout >"$fromdir/bar/down/to/home-cvs-exclude" echo keeper >"$fromdir/bar/down/to/foo/file1" +echo cvsout >"$fromdir/bar/down/to/foo/file1.bak" echo gone >"$fromdir/bar/down/to/foo/file3" echo lost >"$fromdir/bar/down/to/foo/file4" +echo cvsout >"$fromdir/bar/down/to/foo/file4.junk" echo smashed >"$fromdir/bar/down/to/foo/to" +echo cvsout >"$fromdir/mid/one-in-one-out" +echo one-in-one-out >"$fromdir/mid/.cvsignore" +echo cvsin >"$fromdir/mid/one-for-all" +echo cvsin >"$fromdir/mid/for/one-in-one-out" echo expunged >"$fromdir/mid/for/foo/extra" echo retained >"$fromdir/mid/for/foo/keep" ln -s too "$fromdir/bar/down/to/foo/sym" @@ -72,4 +81,21 @@ $RSYNC -av --existing --include='*/' --exclude='*' "$fromdir/" "$chkdir/" checkit "$RSYNC -avv --exclude-from=$excl \"$fromdir/\" \"$todir/\"" "$chkdir" "$todir" +# Modify the chk dir by removing cvs-ignored files and then tweaking the dir times. + +rm "$chkdir"/foo/*.old +rm "$chkdir"/bar/down/to/foo/*.bak +rm "$chkdir"/bar/down/to/foo/*.junk +rm "$chkdir"/bar/down/to/home-cvs-exclude +rm "$chkdir"/mid/one-in-one-out + +$RSYNC -av --existing --include='*/' --exclude='*' "$fromdir/" "$chkdir/" + +# Now, test if rsync excludes the same files, this time with --cvs-exclude +# and --delete-excluded. + +checkit "$RSYNC -avvC --delete-excluded --exclude-from=$excl \ + \"$fromdir/\" \"$todir/\"" "$chkdir" "$todir" + +# The script would have aborted on error, so getting here means we've won. exit 0