(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: { (SQ <"Test ls-files recurse-submodules feature\n"> <"\n"> <"This test verifies the recurse-submodules feature correctly lists files from\n"> <"submodules.\n"> ) } spids: [4] ) ] spids: [4] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(SQ <"setup directory structure and submodules">)} { (SQ <"\n"> <"\techo a >a &&\n"> <"\tmkdir b &&\n"> <"\techo b >b/b &&\n"> <"\tgit add a b &&\n"> <"\tgit commit -m \"add a and b\" &&\n"> <"\tgit init submodule &&\n"> <"\techo c >submodule/c &&\n"> <"\tgit -C submodule add c &&\n"> <"\tgit -C submodule commit -m \"add c\" &&\n"> <"\tgit submodule add ./submodule &&\n"> <"\tgit commit -m \"added submodule\"\n"> ) } ) (C {(test_expect_success)} {(SQ <"ls-files correctly outputs files in submodule">)} { (SQ <"\n"> <"\tcat >expect <<-\\EOF &&\n"> <"\t.gitmodules\n"> <"\ta\n"> <"\tb/b\n"> <"\tsubmodule/c\n"> <"\tEOF\n"> <"\n"> <"\tgit ls-files --recurse-submodules >actual &&\n"> <"\ttest_cmp expect actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"ls-files correctly outputs files in submodule with -z">)} { (SQ <"\n"> <"\tlf_to_nul >expect <<-\\EOF &&\n"> <"\t.gitmodules\n"> <"\ta\n"> <"\tb/b\n"> <"\tsubmodule/c\n"> <"\tEOF\n"> <"\n"> <"\tgit ls-files --recurse-submodules -z >actual &&\n"> <"\ttest_cmp expect actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"ls-files does not output files not added to a repo">)} { (SQ <"\n"> <"\tcat >expect <<-\\EOF &&\n"> <"\t.gitmodules\n"> <"\ta\n"> <"\tb/b\n"> <"\tsubmodule/c\n"> <"\tEOF\n"> <"\n"> <"\techo a >not_added &&\n"> <"\techo b >b/not_added &&\n"> <"\techo c >submodule/not_added &&\n"> <"\tgit ls-files --recurse-submodules >actual &&\n"> <"\ttest_cmp expect actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"ls-files recurses more than 1 level">)} { (SQ <"\n"> <"\tcat >expect <<-\\EOF &&\n"> <"\t.gitmodules\n"> <"\ta\n"> <"\tb/b\n"> <"\tsubmodule/.gitmodules\n"> <"\tsubmodule/c\n"> <"\tsubmodule/subsub/d\n"> <"\tEOF\n"> <"\n"> <"\tgit init submodule/subsub &&\n"> <"\techo d >submodule/subsub/d &&\n"> <"\tgit -C submodule/subsub add d &&\n"> <"\tgit -C submodule/subsub commit -m \"add d\" &&\n"> <"\tgit -C submodule submodule add ./subsub &&\n"> <"\tgit -C submodule commit -m \"added subsub\" &&\n"> <"\tgit ls-files --recurse-submodules >actual &&\n"> <"\ttest_cmp expect actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"--recurse-submodules and pathspecs setup">)} { (SQ <"\n"> <"\techo e >submodule/subsub/e.txt &&\n"> <"\tgit -C submodule/subsub add e.txt &&\n"> <"\tgit -C submodule/subsub commit -m \"adding e.txt\" &&\n"> <"\techo f >submodule/f.TXT &&\n"> <"\techo g >submodule/g.txt &&\n"> <"\tgit -C submodule add f.TXT g.txt &&\n"> <"\tgit -C submodule commit -m \"add f and g\" &&\n"> <"\techo h >h.txt &&\n"> <"\tmkdir sib &&\n"> <"\techo sib >sib/file &&\n"> <"\tgit add h.txt sib/file &&\n"> <"\tgit commit -m \"add h and sib/file\" &&\n"> <"\tgit init sub &&\n"> <"\techo sub >sub/file &&\n"> <"\tgit -C sub add file &&\n"> <"\tgit -C sub commit -m \"add file\" &&\n"> <"\tgit submodule add ./sub &&\n"> <"\tgit commit -m \"added sub\" &&\n"> <"\n"> <"\tcat >expect <<-\\EOF &&\n"> <"\t.gitmodules\n"> <"\ta\n"> <"\tb/b\n"> <"\th.txt\n"> <"\tsib/file\n"> <"\tsub/file\n"> <"\tsubmodule/.gitmodules\n"> <"\tsubmodule/c\n"> <"\tsubmodule/f.TXT\n"> <"\tsubmodule/g.txt\n"> <"\tsubmodule/subsub/d\n"> <"\tsubmodule/subsub/e.txt\n"> <"\tEOF\n"> <"\n"> <"\tgit ls-files --recurse-submodules >actual &&\n"> <"\ttest_cmp expect actual &&\n"> <"\tcat actual &&\n"> <"\tgit ls-files --recurse-submodules \"*\" >actual &&\n"> <"\ttest_cmp expect actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"--recurse-submodules and pathspecs">)} { (SQ <"\n"> <"\tcat >expect <<-\\EOF &&\n"> <"\th.txt\n"> <"\tsubmodule/g.txt\n"> <"\tsubmodule/subsub/e.txt\n"> <"\tEOF\n"> <"\n"> <"\tgit ls-files --recurse-submodules \"*.txt\" >actual &&\n"> <"\ttest_cmp expect actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"--recurse-submodules and pathspecs">)} { (SQ <"\n"> <"\tcat >expect <<-\\EOF &&\n"> <"\th.txt\n"> <"\tsubmodule/f.TXT\n"> <"\tsubmodule/g.txt\n"> <"\tsubmodule/subsub/e.txt\n"> <"\tEOF\n"> <"\n"> <"\tgit ls-files --recurse-submodules \":(icase)*.txt\" >actual &&\n"> <"\ttest_cmp expect actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"--recurse-submodules and pathspecs">)} { (SQ <"\n"> <"\tcat >expect <<-\\EOF &&\n"> <"\th.txt\n"> <"\tsubmodule/f.TXT\n"> <"\tsubmodule/g.txt\n"> <"\tEOF\n"> <"\n"> < "\tgit ls-files --recurse-submodules \":(icase)*.txt\" \":(exclude)submodule/subsub/*\" >actual &&\n" > <"\ttest_cmp expect actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"--recurse-submodules and pathspecs">)} { (SQ <"\n"> <"\tcat >expect <<-\\EOF &&\n"> <"\tsub/file\n"> <"\tEOF\n"> <"\n"> <"\tgit ls-files --recurse-submodules \"sub\" >actual &&\n"> <"\ttest_cmp expect actual &&\n"> <"\tgit ls-files --recurse-submodules \"sub/\" >actual &&\n"> <"\ttest_cmp expect actual &&\n"> <"\tgit ls-files --recurse-submodules \"sub/file\" >actual &&\n"> <"\ttest_cmp expect actual &&\n"> <"\tgit ls-files --recurse-submodules \"su*/file\" >actual &&\n"> <"\ttest_cmp expect actual &&\n"> <"\tgit ls-files --recurse-submodules \"su?/file\" >actual &&\n"> <"\ttest_cmp expect actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"--recurse-submodules and pathspecs">)} { (SQ <"\n"> <"\tcat >expect <<-\\EOF &&\n"> <"\tsib/file\n"> <"\tsub/file\n"> <"\tEOF\n"> <"\n"> <"\tgit ls-files --recurse-submodules \"s??/file\" >actual &&\n"> <"\ttest_cmp expect actual &&\n"> <"\tgit ls-files --recurse-submodules \"s???file\" >actual &&\n"> <"\ttest_cmp expect actual &&\n"> <"\tgit ls-files --recurse-submodules \"s*file\" >actual &&\n"> <"\ttest_cmp expect actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"--recurse-submodules does not support --error-unmatch">)} { (SQ <"\n"> <"\ttest_must_fail git ls-files --recurse-submodules --error-unmatch 2>actual &&\n"> <"\ttest_i18ngrep \"does not support --error-unmatch\" actual\n"> ) } ) (FuncDef name: test_incompatible_with_recurse_submodules body: (BraceGroup children: [ (C {(test_expect_success)} {(DQ ("--recurse-submodules and ") ($ VSub_Number "$1") (" are incompatible"))} { (DQ ("\n") ("\t\ttest_must_fail git ls-files --recurse-submodules ") ($ VSub_Number "$1") (" 2>actual &&\n") ("\t\ttest_i18ngrep 'unsupported mode' actual\n") ("\t") ) } ) ] spids: [304] ) spids: [299 303] ) (C {(test_incompatible_with_recurse_submodules)} {(--deleted)}) (C {(test_incompatible_with_recurse_submodules)} {(--modified)}) (C {(test_incompatible_with_recurse_submodules)} {(--others)}) (C {(test_incompatible_with_recurse_submodules)} {(--stage)}) (C {(test_incompatible_with_recurse_submodules)} {(--killed)}) (C {(test_incompatible_with_recurse_submodules)} {(--unmerged)}) (C {(test_done)}) ] )