t3010: update to demonstrate "ls-files -k" optimization pitfalls

An earlier draft of the previous step used cache_name_exists() to
check the directory we were looking at, which missed the second case
described in its log message.  Demonstrate why it is not sufficient.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Junio C Hamano 2013-08-15 13:51:09 -07:00
parent 2eac2a4cc4
commit 3c56875176

View File

@ -11,6 +11,7 @@ This test prepares the following in the cache:
path1 - a symlink
path2/file2 - a file in a directory
path3/file3 - a file in a directory
pathx/ju - a file in a directory
and the following on the filesystem:
@ -21,6 +22,7 @@ and the following on the filesystem:
path4 - a file
path5 - a symlink
path6/file6 - a file in a directory
pathx/ju/nk - a file in a directory to be killed
git ls-files -k should report that existing filesystem
objects except path4, path5 and path6/file6 to be killed.
@ -44,16 +46,17 @@ then
else
date > path1
fi
mkdir path2 path3
mkdir path2 path3 pathx
date >path2/file2
date >path3/file3
>pathx/ju
: >path7
date >path8
: >path9
date >path10
test_expect_success \
'git update-index --add to add various paths.' \
"git update-index --add -- path0 path1 path?/file? path7 path8 path9 path10"
"git update-index --add -- path0 path1 path?/file? pathx/ju path7 path8 path9 path10"
rm -fr path? ;# leave path10 alone
date >path2
@ -65,7 +68,7 @@ else
date > path3
date > path5
fi
mkdir path0 path1 path6
mkdir -p path0 path1 path6 pathx/ju
date >path0/file0
date >path1/file1
date >path6/file6
@ -73,6 +76,7 @@ date >path7
: >path8
: >path9
touch path10
>pathx/ju/nk
test_expect_success \
'git ls-files -k to show killed files.' \
@ -82,6 +86,7 @@ path0/file0
path1/file1
path2
path3
pathx/ju/nk
EOF
test_expect_success \
@ -98,6 +103,7 @@ path2/file2
path3/file3
path7
path8
pathx/ju
EOF
test_expect_success \