summaryrefslogtreecommitdiff
path: root/t/t3001-ls-files-others-exclude.sh
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2010-01-09 07:05:41 (GMT)
committerJunio C Hamano <gitster@pobox.com>2010-01-09 07:14:50 (GMT)
commit48ffef966c762578eb818c0c54a7e11dd054f5db (patch)
tree8288fd6e9577d4ab11d2f61b85bc4457cd1c2bdc /t/t3001-ls-files-others-exclude.sh
parent16e2cfa90993b23bda8ff1ffb958cac20e58b058 (diff)
downloadgit-48ffef966c762578eb818c0c54a7e11dd054f5db.zip
git-48ffef966c762578eb818c0c54a7e11dd054f5db.tar.gz
git-48ffef966c762578eb818c0c54a7e11dd054f5db.tar.bz2
ls-files: fix overeager pathspec optimization
Given pathspecs that share a common prefix, ls-files optimized its call into recursive directory reader by starting at the common prefix directory. If you have a directory "t" with an untracked file "t/junk" in it, but the top-level .gitignore file told us to ignore "t/", this resulted in: $ git ls-files -o --exclude-standard $ git ls-files -o --exclude-standard t/ t/junk $ git ls-files -o --exclude-standard t/junk t/junk $ cd t && git ls-files -o --exclude-standard junk We could argue that you are overriding the ignore file by giving a patchspec that matches or being in that directory, but it is somewhat unexpected. Worse yet, these behave differently: $ git ls-files -o --exclude-standard t/ . $ git ls-files -o --exclude-standard t/ t/junk This patch changes the optimization so that it notices when the common prefix directory that it starts reading from is an ignored one. Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t3001-ls-files-others-exclude.sh')
-rwxr-xr-xt/t3001-ls-files-others-exclude.sh2
1 files changed, 1 insertions, 1 deletions
diff --git a/t/t3001-ls-files-others-exclude.sh b/t/t3001-ls-files-others-exclude.sh
index e3e4d71..9e71260 100755
--- a/t/t3001-ls-files-others-exclude.sh
+++ b/t/t3001-ls-files-others-exclude.sh
@@ -183,7 +183,7 @@ test_expect_success 'subdirectory ignore (l1/l2)' '
test_cmp expect actual
'
-test_expect_failure 'subdirectory ignore (l1)' '
+test_expect_success 'subdirectory ignore (l1)' '
(
cd top/l1 &&
git ls-files -o --exclude-standard