-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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>
- Loading branch information
Junio C Hamano
committed
Jul 26, 2005
1 parent
b7e438f
commit f87f949
Showing
2 changed files
with
157 additions
and
21 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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' |