(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: { (SQ <'git ls-files -k and -m flags test.\n'> <'\n'> <'This test prepares the following in the cache:\n'> <'\n'> <' path0 - a file\n'> <' path1 - a symlink\n'> <' path2/file2 - a file in a directory\n'> <' path3/file3 - a file in a directory\n'> <' pathx/ju - a file in a directory\n'> <' submod1/\t- a submodule\n'> <' submod2/\t- another submodule\n'> <'\n'> <'and the following on the filesystem:\n'> <'\n'> <' path0/file0 - a file in a directory\n'> <' path1/file1 - a file in a directory\n'> <' path2 - a file\n'> <' path3 - a symlink\n'> <' path4\t- a file\n'> <' path5\t- a symlink\n'> <' path6/file6 - a file in a directory\n'> <' pathx/ju/nk - a file in a directory to be killed\n'> <' submod1/\t- a submodule (modified from the cache)\n'> <' submod2/\t- a submodule (matches the cache)\n'> <'\n'> <'git ls-files -k should report that existing filesystem objects\n'> <'path0/*, path1/*, path2 and path3 to be killed.\n'> <'\n'> <'Also for modification test, the cache and working tree have:\n'> <'\n'> <' path7 - an empty file, modified to a non-empty file.\n'> <' path8 - a non-empty file, modified to an empty file.\n'> <' path9\t- an empty file, cache dirtied.\n'> <' path10\t- a non-empty file, cache dirtied.\n'> <'\n'> <'We should report path0, path1, path2/file2, path3/file3, path7 and path8\n'> <'modified without reporting path9 and path10. submod1 is also modified.\n'> ) } spids: [13] ) ] spids: [13] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(SQ <'git update-index --add to add various paths.'>)} { (SQ <'\n'> <'\tdate >path0 &&\n'> <'\ttest_ln_s_add xyzzy path1 &&\n'> <'\tmkdir path2 path3 pathx &&\n'> <'\tdate >path2/file2 &&\n'> <'\tdate >path3/file3 &&\n'> <'\t>pathx/ju &&\n'> <'\t: >path7 &&\n'> <'\tdate >path8 &&\n'> <'\t: >path9 &&\n'> <'\tdate >path10 &&\n'> <'\tgit update-index --add -- path0 path?/file? pathx/ju path7 path8 path9 path10 &&\n'> <'\tgit init submod1 &&\n'> <'\tgit -C submod1 commit --allow-empty -m "empty 1" &&\n'> <'\tgit init submod2 &&\n'> <'\tgit -C submod2 commit --allow-empty -m "empty 2" &&\n'> <'\tgit update-index --add submod[12] &&\n'> <'\t(\n'> <'\t\tcd submod1 &&\n'> <'\t\tgit commit --allow-empty -m "empty 1 (updated)"\n'> <'\t) &&\n'> <'\trm -fr path?\t# leave path10 alone\n'> ) } ) (C {(test_expect_success)} {(SQ <'git ls-files -k to show killed files.'>)} { (SQ <'\n'> <'\tdate >path2 &&\n'> <'\tif test_have_prereq SYMLINKS\n'> <'\tthen\n'> <'\t\tln -s frotz path3 &&\n'> <'\t\tln -s nitfol path5\n'> <'\telse\n'> <'\t\tdate >path3 &&\n'> <'\t\tdate >path5\n'> <'\tfi &&\n'> <'\tmkdir -p path0 path1 path6 pathx/ju &&\n'> <'\tdate >path0/file0 &&\n'> <'\tdate >path1/file1 &&\n'> <'\tdate >path6/file6 &&\n'> <'\tdate >path7 &&\n'> <'\t: >path8 &&\n'> <'\t: >path9 &&\n'> <'\ttouch path10 &&\n'> <'\t>pathx/ju/nk &&\n'> <'\tcat >.expected <<-\\EOF\n'> <'\tpath0/file0\n'> <'\tpath1/file1\n'> <'\tpath2\n'> <'\tpath3\n'> <'\tpathx/ju/nk\n'> <'\tEOF\n'> ) } ) (C {(test_expect_success)} {(SQ <'git ls-files -k output (w/o icase)'>)} {(SQ <'\n'> <'\tgit ls-files -k >.output &&\n'> <'\ttest_cmp .expected .output\n'>)} ) (C {(test_expect_success)} {(SQ <'git ls-files -k output (w/ icase)'>)} { (SQ <'\n'> <'\tgit -c core.ignorecase=true ls-files -k >.output &&\n'> <'\ttest_cmp .expected .output\n'> ) } ) (C {(test_expect_success)} {(SQ <'git ls-files -m to show modified files.'>)} {(SQ <'\n'> <'\tgit ls-files -m >.output\n'>)} ) (C {(test_expect_success)} {(SQ <'validate git ls-files -m output.'>)} { (SQ <'\n'> <'\tcat >.expected <<-\\EOF &&\n'> <'\tpath0\n'> <'\tpath1\n'> <'\tpath2/file2\n'> <'\tpath3/file3\n'> <'\tpath7\n'> <'\tpath8\n'> <'\tpathx/ju\n'> <'\tsubmod1\n'> <'\tEOF\n'> <'\ttest_cmp .expected .output\n'> ) } ) (C {(test_done)}) ] )