diff options
author | Junio C Hamano <gitster@pobox.com> | 2015-10-07 13:38:17 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-10-07 13:38:17 -0700 |
commit | 506d8f1b394917c345965fc1762afa66678870c1 (patch) | |
tree | 6ff88fa3da3500254ac3b364fbf99bb95ddb5247 /t | |
parent | Merge branch 'ti/glibc-stdio-mutex-from-signal-handler' (diff) | |
parent | dir.c: don't exclude whole dir prematurely if neg pattern may match (diff) | |
download | tgif-506d8f1b394917c345965fc1762afa66678870c1.tar.xz |
Merge branch 'nd/ignore-then-not-ignore'
Allow a later "!/abc/def" to override an earlier "/abc" that
appears in the same .gitignore file to make it easier to express
"everything in /abc directory is ignored, except for ...".
* nd/ignore-then-not-ignore:
dir.c: don't exclude whole dir prematurely if neg pattern may match
dir.c: make last_exclude_matching_from_list() run til the end
Diffstat (limited to 't')
-rwxr-xr-x | t/t3001-ls-files-others-exclude.sh | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/t/t3001-ls-files-others-exclude.sh b/t/t3001-ls-files-others-exclude.sh index 3fc484e8c3..da257c020f 100755 --- a/t/t3001-ls-files-others-exclude.sh +++ b/t/t3001-ls-files-others-exclude.sh @@ -305,4 +305,29 @@ test_expect_success 'ls-files with "**" patterns and no slashes' ' test_cmp expect actual ' +test_expect_success 'negative patterns' ' + git init reinclude && + ( + cd reinclude && + cat >.gitignore <<-\EOF && + /fooo + /foo + !foo/bar/bar + EOF + mkdir fooo && + cat >fooo/.gitignore <<-\EOF && + !/* + EOF + mkdir -p foo/bar && + touch abc foo/def foo/bar/ghi foo/bar/bar && + git ls-files -o --exclude-standard >../actual && + cat >../expected <<-\EOF && + .gitignore + abc + foo/bar/bar + EOF + test_cmp ../expected ../actual + ) +' + test_done |