diff options
author | Junio C Hamano <junkio@cox.net> | 2005-07-24 15:26:09 -0700 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2005-07-25 17:03:52 -0700 |
commit | f87f94974869b1ddd579d4c6aaff12a5f86ca26e (patch) | |
tree | 2423ec84272bfc8d589b42e41f521e7d6877c779 /t | |
parent | b7e438f951f68be704b001343811e9ff89da07f7 (diff) | |
download | git-f87f94974869b1ddd579d4c6aaff12a5f86ca26e.tar.gz git-f87f94974869b1ddd579d4c6aaff12a5f86ca26e.tar.xz |
git-ls-files: --exclude mechanism updates.
Add --exclude-per-directory=<name> option that specifies a file
to contain exclude patterns local to that directory and its
subdirectories. Update the exclusion logic to be able to say
"include files that match this more specific pattern, even
though later exclude patterns may match them". Also enhances
that a pattern can contain '/' in which case fnmatch is called
with FNM_PATHNAME flag to match the entire path.
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 't')
-rwxr-xr-x | t/t3001-ls-files-others-exclude.sh | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/t/t3001-ls-files-others-exclude.sh b/t/t3001-ls-files-others-exclude.sh new file mode 100755 index 000000000..4b9380fa0 --- /dev/null +++ b/t/t3001-ls-files-others-exclude.sh @@ -0,0 +1,55 @@ +#!/bin/sh +# +# Copyright (c) 2005 Junio C Hamano +# + +test_description='git-ls-files --others --exclude + +This test runs git-ls-files --others and tests --exclude patterns. +' + +. ./test-lib.sh + +rm -fr one three +for dir in . one one/two three +do + mkdir -p $dir && + for i in 1 2 3 4 5 + do + >$dir/a.$i + done +done + +cat >expect <<EOF +a.2 +a.4 +a.5 +one/a.3 +one/a.4 +one/a.5 +one/two/a.3 +one/two/a.5 +three/a.2 +three/a.3 +three/a.4 +three/a.5 +EOF + +echo '.gitignore +output +expect +.gitignore +' >.git/ignore + +echo '*.1 +/*.3' >.gitignore +echo '*.2 +two/*.4' >one/.gitignore + +test_expect_success \ + 'git-ls-files --others --exclude.' \ + 'git-ls-files --others \ + --exclude-per-directory=.gitignore \ + --exclude-from=.git/ignore \ + >output && + diff -u expect output' |