#! /bin/sh
-# Copyright (C) 2003 by Wayne Davison <wayned@samba.org>
+# Copyright (C) 2003, 2004, 2005 by Wayne Davison <wayned@samba.org>
# This program is distributable under the terms of the GNU GPL see
# COPYING).
. "$suitedir/rsync.fns"
-set -x
-
-HOME="$scratchdir"
CVSIGNORE='*.junk'
-export HOME CVSIGNORE
+export CVSIGNORE
+
+set -x
# Build some files/dirs/links to copy
makepath "$fromdir/foo/down/to/you"
+makepath "$fromdir/foo/sub"
makepath "$fromdir/bar/down/to/foo/too"
makepath "$fromdir/bar/down/to/bar/baz"
makepath "$fromdir/mid/for/foo/and/that/is/who"
+makepath "$fromdir/new/keep/this"
+makepath "$fromdir/new/lose/this"
cat >"$fromdir/.filt" <<EOF
exclude down
: .filt-temp
- *.bak
- *.old
EOF
-echo kept >"$fromdir/foo/file1"
+echo filtered-1 >"$fromdir/foo/file1"
echo removed >"$fromdir/foo/file2"
echo cvsout >"$fromdir/foo/file2.old"
cat >"$fromdir/foo/.filt" <<EOF
include .filt
-- file1
+- /file1
EOF
+echo not-filtered-1 >"$fromdir/foo/sub/file1"
cat >"$fromdir/bar/.filt" <<EOF
- home-cvs-exclude
dir-merge .filt2
- /bar
# This should match against the whole path, not just the name.
+ foo**too
-# This should float at the end of the path.
+# These should float at the end of the path.
++ foo/s?b/
- foo/*/
+# Test how /** differs from /***
+- new/keep/**
+- new/lose/***
# Test some normal excludes. Competing lines are paired.
+ t[o]/
- to
rm -r "$chkdir"/foo/down
rm -r "$chkdir"/mid/for/foo/and
+rm -r "$chkdir"/new/keep/this
+rm -r "$chkdir"/new/lose
rm "$chkdir"/foo/file[235-9]
rm "$chkdir"/bar/down/to/foo/to "$chkdir"/bar/down/to/foo/file[235-9]
rm "$chkdir"/mid/for/foo/extra
rm "$chkdir"/bar/down/to/bar/.filt2
rm "$chkdir"/mid/.filt
-$RSYNC -av --existing --filter='-! */' "$fromdir/" "$chkdir/"
+$RSYNC -av --protocol=28 --existing --include='*/' --exclude='*' "$fromdir/" "$chkdir/"
# Now, try the prior command with --delete-before and some side-specific
# rules.
rm "$chkdir/bar/down/to/foo/file1.bak"
rm "$chkdir/bar/down/to/foo/file3"
rm "$chkdir/bar/down/to/foo/+ file3"
+$RSYNC -av --existing --filter='-! */' "$fromdir/" "$chkdir/"
$RSYNC -av --delete-excluded --exclude='*' "$fromdir/" "$todir/"
checkit "$RSYNC -avv -f dir-merge,-_.excl \