(List
  (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('test_description', {[SQ <LIT_CHARS "more git add -u">]})])
  (Com {[LIT_CHARS .]} {[LIT_CHARS ./test-lib.sh]}  )
  (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS setup]} {[SQ <LIT_CHARS "\n"> <LIT_CHARS "\t>xyzzy &&\n"> <LIT_CHARS "\t_empty=$(git hash-object --stdin <xyzzy) &&\n"> <LIT_CHARS "\t>yomin &&\n"> <LIT_CHARS "\t>caskly &&\n"> <LIT_CHARS "\tif test_have_prereq SYMLINKS; then\n"> <LIT_CHARS "\t\tln -s frotz nitfol &&\n"> <LIT_CHARS "\t\tT_letter=T\n"> <LIT_CHARS "\telse\n"> <LIT_CHARS "\t\tprintf %s frotz > nitfol &&\n"> <LIT_CHARS "\t\tT_letter=M\n"> <LIT_CHARS "\tfi &&\n"> <LIT_CHARS "\tmkdir rezrov &&\n"> <LIT_CHARS "\t>rezrov/bozbar &&\n"> <LIT_CHARS "\tgit add caskly xyzzy yomin nitfol rezrov/bozbar &&\n"> <LIT_CHARS "\n"> <LIT_CHARS "\ttest_tick &&\n"> <LIT_CHARS "\tgit commit -m initial\n"> <LIT_CHARS "\n">]}  )
  (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS modify]} {[SQ <LIT_CHARS "\n"> <LIT_CHARS "\trm -f xyzzy yomin nitfol caskly &&\n"> <LIT_CHARS "\t# caskly disappears (not a submodule)\n"> <LIT_CHARS "\tmkdir caskly &&\n"> <LIT_CHARS "\t# nitfol changes from symlink to regular\n"> <LIT_CHARS "\t>nitfol &&\n"> <LIT_CHARS "\t# rezrov/bozbar disappears\n"> <LIT_CHARS "\trm -fr rezrov &&\n"> <LIT_CHARS "\tif test_have_prereq SYMLINKS; then\n"> <LIT_CHARS "\t\tln -s xyzzy rezrov\n"> <LIT_CHARS "\telse\n"> <LIT_CHARS "\t\tprintf %s xyzzy > rezrov\n"> <LIT_CHARS "\tfi &&\n"> <LIT_CHARS "\t# xyzzy disappears (not a submodule)\n"> <LIT_CHARS "\tmkdir xyzzy &&\n"> <LIT_CHARS "\techo gnusto >xyzzy/bozbar &&\n"> <LIT_CHARS "\t# yomin gets replaced with a submodule\n"> <LIT_CHARS "\tmkdir yomin &&\n"> <LIT_CHARS "\t>yomin/yomin &&\n"> <LIT_CHARS "\t(\n"> <LIT_CHARS "\t\tcd yomin &&\n"> <LIT_CHARS "\t\tgit init &&\n"> <LIT_CHARS "\t\tgit add yomin &&\n"> <LIT_CHARS "\t\tgit commit -m \"sub initial\"\n"> <LIT_CHARS "\t) &&\n"> <LIT_CHARS "\tyomin=$(GIT_DIR=yomin/.git git rev-parse HEAD) &&\n"> <LIT_CHARS "\t# yonk is added and then turned into a submodule\n"> <LIT_CHARS "\t# this should appear as T in diff-files and as A in diff-index\n"> <LIT_CHARS "\t>yonk &&\n"> <LIT_CHARS "\tgit add yonk &&\n"> <LIT_CHARS "\trm -f yonk &&\n"> <LIT_CHARS "\tmkdir yonk &&\n"> <LIT_CHARS "\t>yonk/yonk &&\n"> <LIT_CHARS "\t(\n"> <LIT_CHARS "\t\tcd yonk &&\n"> <LIT_CHARS "\t\tgit init &&\n"> <LIT_CHARS "\t\tgit add yonk &&\n"> <LIT_CHARS "\t\tgit commit -m \"sub initial\"\n"> <LIT_CHARS "\t) &&\n"> <LIT_CHARS "\tyonk=$(GIT_DIR=yonk/.git git rev-parse HEAD) &&\n"> <LIT_CHARS "\t# zifmia is added and then removed\n"> <LIT_CHARS "\t# this should appear in diff-files but not in diff-index.\n"> <LIT_CHARS "\t>zifmia &&\n"> <LIT_CHARS "\tgit add zifmia &&\n"> <LIT_CHARS "\trm -f zifmia &&\n"> <LIT_CHARS "\tmkdir zifmia &&\n"> <LIT_CHARS "\t{\n"> <LIT_CHARS "\t\tgit ls-tree -r HEAD |\n"> <LIT_CHARS "\t\tsed -e \"s/^/:/\" -e \"\n"> <LIT_CHARS "\t\t\t/\tcaskly/{\n"> <LIT_CHARS "\t\t\t\ts/\tcaskly/ $_z40 D&/\n"> <LIT_CHARS "\t\t\t\ts/blob/000000/\n"> <LIT_CHARS "\t\t\t}\n"> <LIT_CHARS "\t\t\t/\tnitfol/{\n"> <LIT_CHARS "\t\t\t\ts/\tnitfol/ $_z40 $T_letter&/\n"> <LIT_CHARS "\t\t\t\ts/blob/100644/\n"> <LIT_CHARS "\t\t\t}\n"> <LIT_CHARS "\t\t\t/\trezrov.bozbar/{\n"> <LIT_CHARS "\t\t\t\ts/\trezrov.bozbar/ $_z40 D&/\n"> <LIT_CHARS "\t\t\t\ts/blob/000000/\n"> <LIT_CHARS "\t\t\t}\n"> <LIT_CHARS "\t\t\t/\txyzzy/{\n"> <LIT_CHARS "\t\t\t\ts/\txyzzy/ $_z40 D&/\n"> <LIT_CHARS "\t\t\t\ts/blob/000000/\n"> <LIT_CHARS "\t\t\t}\n"> <LIT_CHARS "\t\t\t/\tyomin/{\n"> <LIT_CHARS "\t\t\t    s/\tyomin/ $_z40 T&/\n"> <LIT_CHARS "\t\t\t\ts/blob/160000/\n"> <LIT_CHARS "\t\t\t}\n"> <LIT_CHARS "\t\t\"\n"> <LIT_CHARS "\t} >expect &&\n"> <LIT_CHARS "\t{\n"> <LIT_CHARS "\t\tcat expect\n"> <LIT_CHARS "\t\techo \":100644 160000 $_empty $_z40 T\tyonk\"\n"> <LIT_CHARS "\t\techo \":100644 000000 $_empty $_z40 D\tzifmia\"\n"> <LIT_CHARS "\t} >expect-files &&\n"> <LIT_CHARS "\t{\n"> <LIT_CHARS "\t\tcat expect\n"> <LIT_CHARS "\t\techo \":000000 160000 $_z40 $_z40 A\tyonk\"\n"> <LIT_CHARS "\t} >expect-index &&\n"> <LIT_CHARS "\t{\n"> <LIT_CHARS "\t\techo \"100644 $_empty 0\tnitfol\"\n"> <LIT_CHARS "\t\techo \"160000 $yomin 0\tyomin\"\n"> <LIT_CHARS "\t\techo \"160000 $yonk 0\tyonk\"\n"> <LIT_CHARS "\t} >expect-final\n">]}  )
  (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS diff-files]} {[SQ <LIT_CHARS "\n"> <LIT_CHARS "\tgit diff-files --raw >actual &&\n"> <LIT_CHARS "\ttest_cmp expect-files actual\n">]}  )
  (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS diff-index]} {[SQ <LIT_CHARS "\n"> <LIT_CHARS "\tgit diff-index --raw HEAD -- >actual &&\n"> <LIT_CHARS "\ttest_cmp expect-index actual\n">]}  )
  (Com {[LIT_CHARS test_expect_success]} {[SQ <LIT_CHARS "add -u">]} {[SQ <LIT_CHARS "\n"> <LIT_CHARS "\trm -f \".git/saved-index\" &&\n"> <LIT_CHARS "\tcp -p \".git/index\" \".git/saved-index\" &&\n"> <LIT_CHARS "\tgit add -u &&\n"> <LIT_CHARS "\tgit ls-files -s >actual &&\n"> <LIT_CHARS "\ttest_cmp expect-final actual\n">]}  )
  (Com {[LIT_CHARS test_expect_success]} {[SQ <LIT_CHARS "commit -a">]} {[SQ <LIT_CHARS "\n"> <LIT_CHARS "\tif test -f \".git/saved-index\"\n"> <LIT_CHARS "\tthen\n"> <LIT_CHARS "\t\trm -f \".git/index\" &&\n"> <LIT_CHARS "\t\tmv \".git/saved-index\" \".git/index\"\n"> <LIT_CHARS "\tfi &&\n"> <LIT_CHARS "\tgit commit -m \"second\" -a &&\n"> <LIT_CHARS "\tgit ls-files -s >actual &&\n"> <LIT_CHARS "\ttest_cmp expect-final actual &&\n"> <LIT_CHARS "\trm -f .git/index &&\n"> <LIT_CHARS "\tgit read-tree HEAD &&\n"> <LIT_CHARS "\tgit ls-files -s >actual &&\n"> <LIT_CHARS "\ttest_cmp expect-final actual\n">]}  )
  (Com {[LIT_CHARS test_done]}  )
)