mirror of
https://github.com/git/git.git
synced 2025-03-15 21:31:12 +00:00
dir.c: fix EXC_FLAG_MUSTBEDIR match in sparse checkout
Commit c84de70 (excluded_1(): support exclude files in index - 2009-08-20) tries to work around the fact that there is no directory/file information in index entries, therefore EXC_FLAG_MUSTBEDIR match would fail. Unfortunately the workaround is flawed. This fixes it. Reported-by: Thomas Rinderknecht <thomasr@sailguy.org> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
af77aee9ca
commit
ae3cdfe112
3
dir.c
3
dir.c
@ -360,7 +360,8 @@ int excluded_from_list(const char *pathname,
|
||||
|
||||
if (x->flags & EXC_FLAG_MUSTBEDIR) {
|
||||
if (!dtype) {
|
||||
if (!prefixcmp(pathname, exclude))
|
||||
if (!prefixcmp(pathname, exclude) &&
|
||||
pathname[x->patternlen] == '/')
|
||||
return to_exclude;
|
||||
else
|
||||
continue;
|
||||
|
@ -17,17 +17,19 @@ test_expect_success 'setup' '
|
||||
cat >expected <<-\EOF &&
|
||||
100644 77f0ba1734ed79d12881f81b36ee134de6a3327b 0 init.t
|
||||
100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 sub/added
|
||||
100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 subsub/added
|
||||
EOF
|
||||
cat >expected.swt <<-\EOF &&
|
||||
H init.t
|
||||
H sub/added
|
||||
H subsub/added
|
||||
EOF
|
||||
|
||||
test_commit init &&
|
||||
echo modified >>init.t &&
|
||||
mkdir sub &&
|
||||
touch sub/added &&
|
||||
git add init.t sub/added &&
|
||||
mkdir sub subsub &&
|
||||
touch sub/added subsub/added &&
|
||||
git add init.t sub/added subsub/added &&
|
||||
git commit -m "modified and added" &&
|
||||
git tag top &&
|
||||
git rm sub/added &&
|
||||
@ -81,6 +83,7 @@ test_expect_success 'match directories with trailing slash' '
|
||||
cat >expected.swt-noinit <<-\EOF &&
|
||||
S init.t
|
||||
H sub/added
|
||||
S subsub/added
|
||||
EOF
|
||||
|
||||
echo sub/ > .git/info/sparse-checkout &&
|
||||
@ -105,6 +108,7 @@ test_expect_success 'checkout area changes' '
|
||||
cat >expected.swt-nosub <<-\EOF &&
|
||||
H init.t
|
||||
S sub/added
|
||||
S subsub/added
|
||||
EOF
|
||||
|
||||
echo init.t >.git/info/sparse-checkout &&
|
||||
|
Loading…
x
Reference in New Issue
Block a user