mirror of
https://github.com/git/git.git
synced 2026-04-11 17:30:08 +02:00
refactor handling of "other" files in ls-files and status
When the "git status" display code was originally converted
to C, we copied the code from ls-files to discover whether a
pathname returned by read_directory was an "other", or
untracked, file.
Much later, 5698454e updated the code in ls-files to handle
some new cases caused by gitlinks. This left the code in
wt-status.c broken: it would display submodule directories
as untracked directories. Nobody noticed until now, however,
because unless status.showUntrackedFiles was set to "all",
submodule directories were not actually reported by
read_directory. So the bug was only triggered in the
presence of a submodule _and_ this config option.
This patch pulls the ls-files code into a new function,
cache_name_is_other, and uses it in both places. This should
leave the ls-files functionality the same and fix the bug
in status.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
8ed0a740dd
commit
98fa473887
@@ -285,6 +285,12 @@ test_expect_success 'status submodule summary is disabled by default' '
|
||||
test_cmp expect output
|
||||
'
|
||||
|
||||
# we expect the same as the previous test
|
||||
test_expect_success 'status --untracked-files=all does not show submodule' '
|
||||
git status --untracked-files=all >output &&
|
||||
test_cmp expect output
|
||||
'
|
||||
|
||||
head=$(cd sm && git rev-parse --short=7 --verify HEAD)
|
||||
|
||||
cat >expect <<EOF
|
||||
|
||||
Reference in New Issue
Block a user