(List (= scope= flags=0 words=[] bindings=[('test_description', {[SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ]})]) (Com {[LIT_CHARS .]} {[LIT_CHARS ./test-lib.sh]} ) (Com {[LIT_CHARS .]} {[DQ [VarSub TEST_DIRECTORY]] [LIT_CHARS /lib-read-tree.sh]} ) (Com {[LIT_CHARS .]} {[DQ [VarSub TEST_DIRECTORY]] [LIT_CHARS /lib-read-tree-m-3way.sh]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expected]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "100644 X 2\tAA\n"] [LIT_CHARS "100644 X 3\tAA\n"] [LIT_CHARS "100644 X 0\tAN\n"] [LIT_CHARS "100644 X 1\tDD\n"] [LIT_CHARS "100644 X 3\tDF\n"] [LIT_CHARS "100644 X 2\tDF/DF\n"] [LIT_CHARS "100644 X 1\tDM\n"] [LIT_CHARS "100644 X 3\tDM\n"] [LIT_CHARS "100644 X 1\tDN\n"] [LIT_CHARS "100644 X 3\tDN\n"] [LIT_CHARS "100644 X 0\tLL\n"] [LIT_CHARS "100644 X 1\tMD\n"] [LIT_CHARS "100644 X 2\tMD\n"] [LIT_CHARS "100644 X 1\tMM\n"] [LIT_CHARS "100644 X 2\tMM\n"] [LIT_CHARS "100644 X 3\tMM\n"] [LIT_CHARS "100644 X 0\tMN\n"] [LIT_CHARS "100644 X 0\tNA\n"] [LIT_CHARS "100644 X 1\tND\n"] [LIT_CHARS "100644 X 2\tND\n"] [LIT_CHARS "100644 X 0\tNM\n"] [LIT_CHARS "100644 X 0\tNN\n"] [LIT_CHARS "100644 X 0\tSS\n"] [LIT_CHARS "100644 X 1\tTT\n"] [LIT_CHARS "100644 X 2\tTT\n"] [LIT_CHARS "100644 X 3\tTT\n"] [LIT_CHARS "100644 X 2\tZ/AA\n"] [LIT_CHARS "100644 X 3\tZ/AA\n"] [LIT_CHARS "100644 X 0\tZ/AN\n"] [LIT_CHARS "100644 X 1\tZ/DD\n"] [LIT_CHARS "100644 X 1\tZ/DM\n"] [LIT_CHARS "100644 X 3\tZ/DM\n"] [LIT_CHARS "100644 X 1\tZ/DN\n"] [LIT_CHARS "100644 X 3\tZ/DN\n"] [LIT_CHARS "100644 X 1\tZ/MD\n"] [LIT_CHARS "100644 X 2\tZ/MD\n"] [LIT_CHARS "100644 X 1\tZ/MM\n"] [LIT_CHARS "100644 X 2\tZ/MM\n"] [LIT_CHARS "100644 X 3\tZ/MM\n"] [LIT_CHARS "100644 X 0\tZ/MN\n"] [LIT_CHARS "100644 X 0\tZ/NA\n"] [LIT_CHARS "100644 X 1\tZ/ND\n"] [LIT_CHARS "100644 X 2\tZ/ND\n"] [LIT_CHARS "100644 X 0\tZ/NM\n"] [LIT_CHARS "100644 X 0\tZ/NN\n"]} 0), > ) (FunctionDef check_result [] (AndOr OP_AND_IF (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS ls-files]} {[LIT_CHARS --stage]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[SQ ] [DQ [VarSub _x40]] [SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS current]} "> 1), > ) ) (Com {[LIT_CHARS test_cmp]} {[LIT_CHARS expected]} {[LIT_CHARS current]} ) ) ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "rm -fr [NDMALTS][NDMALTSF] Z &&\n"][LIT_CHARS " rm .git/index &&\n"][LIT_CHARS " read_tree_must_succeed -m "][VarSub tree_O][LIT_CHARS " "][VarSub tree_A][LIT_CHARS " "][VarSub tree_B][LIT_CHARS " &&\n"][LIT_CHARS " check_result"]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "rm -fr [NDMALTS][NDMALTSF] Z &&\n"][LIT_CHARS " rm .git/index &&\n"][LIT_CHARS " read_tree_must_succeed "][VarSub tree_A][LIT_CHARS " &&\n"][LIT_CHARS " git checkout-index -f -u -a &&\n"][LIT_CHARS " read_tree_must_succeed -m "][VarSub tree_O][LIT_CHARS " "][VarSub tree_A][LIT_CHARS " "][VarSub tree_B][LIT_CHARS " &&\n"][LIT_CHARS " check_result"]]} ) (Com {[LIT_OTHER ":"]} < (HereDocRedirectNode here_end='END_OF_CASE_TABLE' do_expansion=False body_word={[LIT_CHARS "\n"] [LIT_CHARS "We have so far tested only empty index and clean-and-matching-A index\n"] [LIT_CHARS "case which are trivial. Make sure index requirements are also\n"] [LIT_CHARS "checked.\n"] [LIT_CHARS "\n"] [LIT_CHARS "\"git read-tree -m O A B\"\n"] [LIT_CHARS "\n"] [LIT_CHARS " O A B result index requirements\n"] [LIT_CHARS "-------------------------------------------------------------------\n"] [LIT_CHARS " 1 missing missing missing - must not exist.\n"] [LIT_CHARS " ------------------------------------------------------------------\n"] [LIT_CHARS " 2 missing missing exists take B* must match B, if exists.\n"] [LIT_CHARS " ------------------------------------------------------------------\n"] [LIT_CHARS " 3 missing exists missing take A* must match A, if exists.\n"] [LIT_CHARS " ------------------------------------------------------------------\n"] [LIT_CHARS " 4 missing exists A!=B no merge must match A and be\n"] [LIT_CHARS " up-to-date, if exists.\n"] [LIT_CHARS " ------------------------------------------------------------------\n"] [LIT_CHARS " 5 missing exists A==B take A must match A, if exists.\n"] [LIT_CHARS " ------------------------------------------------------------------\n"] [LIT_CHARS " 6 exists missing missing remove must not exist.\n"] [LIT_CHARS " ------------------------------------------------------------------\n"] [LIT_CHARS " 7 exists missing O!=B no merge must not exist.\n"] [LIT_CHARS " ------------------------------------------------------------------\n"] [LIT_CHARS " 8 exists missing O==B remove must not exist.\n"] [LIT_CHARS " ------------------------------------------------------------------\n"] [LIT_CHARS " 9 exists O!=A missing no merge must match A and be\n"] [LIT_CHARS " up-to-date, if exists.\n"] [LIT_CHARS " ------------------------------------------------------------------\n"] [LIT_CHARS " 10 exists O==A missing no merge must match A\n"] [LIT_CHARS " ------------------------------------------------------------------\n"] [LIT_CHARS " 11 exists O!=A O!=B no merge must match A and be\n"] [LIT_CHARS " A!=B up-to-date, if exists.\n"] [LIT_CHARS " ------------------------------------------------------------------\n"] [LIT_CHARS " 12 exists O!=A O!=B take A must match A, if exists.\n"] [LIT_CHARS " A==B\n"] [LIT_CHARS " ------------------------------------------------------------------\n"] [LIT_CHARS " 13 exists O!=A O==B take A must match A, if exists.\n"] [LIT_CHARS " ------------------------------------------------------------------\n"] [LIT_CHARS " 14 exists O==A O!=B take B if exists, must either (1)\n"] [LIT_CHARS " match A and be up-to-date,\n"] [LIT_CHARS " or (2) match B.\n"] [LIT_CHARS " ------------------------------------------------------------------\n"] [LIT_CHARS " 15 exists O==A O==B take B must match A if exists.\n"] [LIT_CHARS " ------------------------------------------------------------------\n"] [LIT_CHARS " 16 exists O==A O==B barf must match A if exists.\n"] [LIT_CHARS " *multi* in one in another\n"] [LIT_CHARS "-------------------------------------------------------------------\n"] [LIT_CHARS "\n"] [LIT_CHARS "Note: we need to be careful in case 2 and 3. The tree A may contain\n"] [LIT_CHARS "DF (file) when tree B require DF to be a directory by having DF/DF\n"] [LIT_CHARS "(file).\n"] [LIT_CHARS "\n"]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "\n"][LIT_CHARS " rm -f .git/index XX &&\n"][LIT_CHARS " echo XX >XX &&\n"][LIT_CHARS " git update-index --add XX &&\n"][LIT_CHARS " read_tree_must_fail -m "][VarSub tree_O][LIT_CHARS " "][VarSub tree_A][LIT_CHARS " "][VarSub tree_B][LIT_CHARS "\n"]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "rm -f .git/index NA &&\n"][LIT_CHARS " cp .orig-B/NA NA &&\n"][LIT_CHARS " git update-index --add NA &&\n"][LIT_CHARS " read_tree_must_succeed -m "][VarSub tree_O][LIT_CHARS " "][VarSub tree_A][LIT_CHARS " "][VarSub tree_B]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "rm -f .git/index NA &&\n"][LIT_CHARS " cp .orig-B/NA NA &&\n"][LIT_CHARS " git update-index --add NA &&\n"][LIT_CHARS " echo extra >>NA &&\n"][LIT_CHARS " read_tree_must_succeed -m "][VarSub tree_O][LIT_CHARS " "][VarSub tree_A][LIT_CHARS " "][VarSub tree_B]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "rm -f .git/index AN &&\n"][LIT_CHARS " cp .orig-A/AN AN &&\n"][LIT_CHARS " git update-index --add AN &&\n"][LIT_CHARS " read_tree_must_succeed -m "][VarSub tree_O][LIT_CHARS " "][VarSub tree_A][LIT_CHARS " "][VarSub tree_B][LIT_CHARS " &&\n"][LIT_CHARS " check_result"]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "rm -f .git/index AN &&\n"][LIT_CHARS " cp .orig-A/AN AN &&\n"][LIT_CHARS " git update-index --add AN &&\n"][LIT_CHARS " echo extra >>AN &&\n"][LIT_CHARS " read_tree_must_succeed -m "][VarSub tree_O][LIT_CHARS " "][VarSub tree_A][LIT_CHARS " "][VarSub tree_B]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "\n"][LIT_CHARS " rm -f .git/index AN &&\n"][LIT_CHARS " cp .orig-A/AN AN &&\n"][LIT_CHARS " echo extra >>AN &&\n"][LIT_CHARS " git update-index --add AN &&\n"][LIT_CHARS " read_tree_must_fail -m "][VarSub tree_O][LIT_CHARS " "][VarSub tree_A][LIT_CHARS " "][VarSub tree_B][LIT_CHARS "\n"]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "rm -f .git/index AA &&\n"][LIT_CHARS " cp .orig-A/AA AA &&\n"][LIT_CHARS " git update-index --add AA &&\n"][LIT_CHARS " read_tree_must_succeed -m "][VarSub tree_O][LIT_CHARS " "][VarSub tree_A][LIT_CHARS " "][VarSub tree_B][LIT_CHARS " &&\n"][LIT_CHARS " check_result"]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "\n"][LIT_CHARS " rm -f .git/index AA &&\n"][LIT_CHARS " cp .orig-A/AA AA &&\n"][LIT_CHARS " git update-index --add AA &&\n"][LIT_CHARS " echo extra >>AA &&\n"][LIT_CHARS " read_tree_must_fail -m "][VarSub tree_O][LIT_CHARS " "][VarSub tree_A][LIT_CHARS " "][VarSub tree_B][LIT_CHARS "\n"]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "\n"][LIT_CHARS " rm -f .git/index AA &&\n"][LIT_CHARS " cp .orig-A/AA AA &&\n"][LIT_CHARS " echo extra >>AA &&\n"][LIT_CHARS " git update-index --add AA &&\n"][LIT_CHARS " read_tree_must_fail -m "][VarSub tree_O][LIT_CHARS " "][VarSub tree_A][LIT_CHARS " "][VarSub tree_B][LIT_CHARS "\n"]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "rm -f .git/index LL &&\n"][LIT_CHARS " cp .orig-A/LL LL &&\n"][LIT_CHARS " git update-index --add LL &&\n"][LIT_CHARS " read_tree_must_succeed -m "][VarSub tree_O][LIT_CHARS " "][VarSub tree_A][LIT_CHARS " "][VarSub tree_B][LIT_CHARS " &&\n"][LIT_CHARS " check_result"]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "rm -f .git/index LL &&\n"][LIT_CHARS " cp .orig-A/LL LL &&\n"][LIT_CHARS " git update-index --add LL &&\n"][LIT_CHARS " echo extra >>LL &&\n"][LIT_CHARS " read_tree_must_succeed -m "][VarSub tree_O][LIT_CHARS " "][VarSub tree_A][LIT_CHARS " "][VarSub tree_B][LIT_CHARS " &&\n"][LIT_CHARS " check_result"]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "\n"][LIT_CHARS " rm -f .git/index LL &&\n"][LIT_CHARS " cp .orig-A/LL LL &&\n"][LIT_CHARS " echo extra >>LL &&\n"][LIT_CHARS " git update-index --add LL &&\n"][LIT_CHARS " read_tree_must_fail -m "][VarSub tree_O][LIT_CHARS " "][VarSub tree_A][LIT_CHARS " "][VarSub tree_B][LIT_CHARS "\n"]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "\n"][LIT_CHARS " rm -f .git/index DD &&\n"][LIT_CHARS " echo DD >DD &&\n"][LIT_CHARS " git update-index --add DD &&\n"][LIT_CHARS " read_tree_must_fail -m "][VarSub tree_O][LIT_CHARS " "][VarSub tree_A][LIT_CHARS " "][VarSub tree_B][LIT_CHARS "\n"]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "\n"][LIT_CHARS " rm -f .git/index DM &&\n"][LIT_CHARS " cp .orig-B/DM DM &&\n"][LIT_CHARS " git update-index --add DM &&\n"][LIT_CHARS " read_tree_must_fail -m "][VarSub tree_O][LIT_CHARS " "][VarSub tree_A][LIT_CHARS " "][VarSub tree_B][LIT_CHARS "\n"]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "\n"][LIT_CHARS " rm -f .git/index DN &&\n"][LIT_CHARS " cp .orig-B/DN DN &&\n"][LIT_CHARS " git update-index --add DN &&\n"][LIT_CHARS " read_tree_must_fail -m "][VarSub tree_O][LIT_CHARS " "][VarSub tree_A][LIT_CHARS " "][VarSub tree_B][LIT_CHARS "\n"]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "rm -f .git/index MD &&\n"][LIT_CHARS " cp .orig-A/MD MD &&\n"][LIT_CHARS " git update-index --add MD &&\n"][LIT_CHARS " read_tree_must_succeed -m "][VarSub tree_O][LIT_CHARS " "][VarSub tree_A][LIT_CHARS " "][VarSub tree_B][LIT_CHARS " &&\n"][LIT_CHARS " check_result"]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "\n"][LIT_CHARS " rm -f .git/index MD &&\n"][LIT_CHARS " cp .orig-A/MD MD &&\n"][LIT_CHARS " git update-index --add MD &&\n"][LIT_CHARS " echo extra >>MD &&\n"][LIT_CHARS " read_tree_must_fail -m "][VarSub tree_O][LIT_CHARS " "][VarSub tree_A][LIT_CHARS " "][VarSub tree_B][LIT_CHARS "\n"]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "\n"][LIT_CHARS " rm -f .git/index MD &&\n"][LIT_CHARS " cp .orig-A/MD MD &&\n"][LIT_CHARS " echo extra >>MD &&\n"][LIT_CHARS " git update-index --add MD &&\n"][LIT_CHARS " read_tree_must_fail -m "][VarSub tree_O][LIT_CHARS " "][VarSub tree_A][LIT_CHARS " "][VarSub tree_B][LIT_CHARS "\n"]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "rm -f .git/index ND &&\n"][LIT_CHARS " cp .orig-A/ND ND &&\n"][LIT_CHARS " git update-index --add ND &&\n"][LIT_CHARS " read_tree_must_succeed -m "][VarSub tree_O][LIT_CHARS " "][VarSub tree_A][LIT_CHARS " "][VarSub tree_B][LIT_CHARS " &&\n"][LIT_CHARS " check_result"]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "\n"][LIT_CHARS " rm -f .git/index ND &&\n"][LIT_CHARS " cp .orig-A/ND ND &&\n"][LIT_CHARS " git update-index --add ND &&\n"][LIT_CHARS " echo extra >>ND &&\n"][LIT_CHARS " read_tree_must_fail -m "][VarSub tree_O][LIT_CHARS " "][VarSub tree_A][LIT_CHARS " "][VarSub tree_B][LIT_CHARS "\n"]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "\n"][LIT_CHARS " rm -f .git/index ND &&\n"][LIT_CHARS " cp .orig-A/ND ND &&\n"][LIT_CHARS " echo extra >>ND &&\n"][LIT_CHARS " git update-index --add ND &&\n"][LIT_CHARS " read_tree_must_fail -m "][VarSub tree_O][LIT_CHARS " "][VarSub tree_A][LIT_CHARS " "][VarSub tree_B][LIT_CHARS "\n"]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "rm -f .git/index MM &&\n"][LIT_CHARS " cp .orig-A/MM MM &&\n"][LIT_CHARS " git update-index --add MM &&\n"][LIT_CHARS " read_tree_must_succeed -m "][VarSub tree_O][LIT_CHARS " "][VarSub tree_A][LIT_CHARS " "][VarSub tree_B][LIT_CHARS " &&\n"][LIT_CHARS " check_result"]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "\n"][LIT_CHARS " rm -f .git/index MM &&\n"][LIT_CHARS " cp .orig-A/MM MM &&\n"][LIT_CHARS " git update-index --add MM &&\n"][LIT_CHARS " echo extra >>MM &&\n"][LIT_CHARS " read_tree_must_fail -m "][VarSub tree_O][LIT_CHARS " "][VarSub tree_A][LIT_CHARS " "][VarSub tree_B][LIT_CHARS "\n"]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "\n"][LIT_CHARS " rm -f .git/index MM &&\n"][LIT_CHARS " cp .orig-A/MM MM &&\n"][LIT_CHARS " echo extra >>MM &&\n"][LIT_CHARS " git update-index --add MM &&\n"][LIT_CHARS " read_tree_must_fail -m "][VarSub tree_O][LIT_CHARS " "][VarSub tree_A][LIT_CHARS " "][VarSub tree_B][LIT_CHARS "\n"]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "rm -f .git/index SS &&\n"][LIT_CHARS " cp .orig-A/SS SS &&\n"][LIT_CHARS " git update-index --add SS &&\n"][LIT_CHARS " read_tree_must_succeed -m "][VarSub tree_O][LIT_CHARS " "][VarSub tree_A][LIT_CHARS " "][VarSub tree_B][LIT_CHARS " &&\n"][LIT_CHARS " check_result"]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "rm -f .git/index SS &&\n"][LIT_CHARS " cp .orig-A/SS SS &&\n"][LIT_CHARS " git update-index --add SS &&\n"][LIT_CHARS " echo extra >>SS &&\n"][LIT_CHARS " read_tree_must_succeed -m "][VarSub tree_O][LIT_CHARS " "][VarSub tree_A][LIT_CHARS " "][VarSub tree_B][LIT_CHARS " &&\n"][LIT_CHARS " check_result"]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "\n"][LIT_CHARS " rm -f .git/index SS &&\n"][LIT_CHARS " cp .orig-A/SS SS &&\n"][LIT_CHARS " echo extra >>SS &&\n"][LIT_CHARS " git update-index --add SS &&\n"][LIT_CHARS " read_tree_must_fail -m "][VarSub tree_O][LIT_CHARS " "][VarSub tree_A][LIT_CHARS " "][VarSub tree_B][LIT_CHARS "\n"]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "rm -f .git/index MN &&\n"][LIT_CHARS " cp .orig-A/MN MN &&\n"][LIT_CHARS " git update-index --add MN &&\n"][LIT_CHARS " read_tree_must_succeed -m "][VarSub tree_O][LIT_CHARS " "][VarSub tree_A][LIT_CHARS " "][VarSub tree_B][LIT_CHARS " &&\n"][LIT_CHARS " check_result"]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "rm -f .git/index MN &&\n"][LIT_CHARS " cp .orig-A/MN MN &&\n"][LIT_CHARS " git update-index --add MN &&\n"][LIT_CHARS " echo extra >>MN &&\n"][LIT_CHARS " read_tree_must_succeed -m "][VarSub tree_O][LIT_CHARS " "][VarSub tree_A][LIT_CHARS " "][VarSub tree_B][LIT_CHARS " &&\n"][LIT_CHARS " check_result"]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "rm -f .git/index NM &&\n"][LIT_CHARS " cp .orig-A/NM NM &&\n"][LIT_CHARS " git update-index --add NM &&\n"][LIT_CHARS " read_tree_must_succeed -m "][VarSub tree_O][LIT_CHARS " "][VarSub tree_A][LIT_CHARS " "][VarSub tree_B][LIT_CHARS " &&\n"][LIT_CHARS " check_result"]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "rm -f .git/index NM &&\n"][LIT_CHARS " cp .orig-B/NM NM &&\n"][LIT_CHARS " git update-index --add NM &&\n"][LIT_CHARS " echo extra >>NM &&\n"][LIT_CHARS " read_tree_must_succeed -m "][VarSub tree_O][LIT_CHARS " "][VarSub tree_A][LIT_CHARS " "][VarSub tree_B][LIT_CHARS " &&\n"][LIT_CHARS " check_result"]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "\n"][LIT_CHARS " rm -f .git/index NM &&\n"][LIT_CHARS " cp .orig-A/NM NM &&\n"][LIT_CHARS " git update-index --add NM &&\n"][LIT_CHARS " echo extra >>NM &&\n"][LIT_CHARS " read_tree_must_fail -m "][VarSub tree_O][LIT_CHARS " "][VarSub tree_A][LIT_CHARS " "][VarSub tree_B][LIT_CHARS "\n"]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "\n"][LIT_CHARS " rm -f .git/index NM &&\n"][LIT_CHARS " cp .orig-A/NM NM &&\n"][LIT_CHARS " echo extra >>NM &&\n"][LIT_CHARS " git update-index --add NM &&\n"][LIT_CHARS " read_tree_must_fail -m "][VarSub tree_O][LIT_CHARS " "][VarSub tree_A][LIT_CHARS " "][VarSub tree_B][LIT_CHARS "\n"]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "rm -f .git/index NN &&\n"][LIT_CHARS " cp .orig-A/NN NN &&\n"][LIT_CHARS " git update-index --add NN &&\n"][LIT_CHARS " read_tree_must_succeed -m "][VarSub tree_O][LIT_CHARS " "][VarSub tree_A][LIT_CHARS " "][VarSub tree_B][LIT_CHARS " &&\n"][LIT_CHARS " check_result"]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "rm -f .git/index NN &&\n"][LIT_CHARS " cp .orig-A/NN NN &&\n"][LIT_CHARS " git update-index --add NN &&\n"][LIT_CHARS " echo extra >>NN &&\n"][LIT_CHARS " read_tree_must_succeed -m "][VarSub tree_O][LIT_CHARS " "][VarSub tree_A][LIT_CHARS " "][VarSub tree_B][LIT_CHARS " &&\n"][LIT_CHARS " check_result"]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "\n"][LIT_CHARS " rm -f .git/index NN &&\n"][LIT_CHARS " cp .orig-A/NN NN &&\n"][LIT_CHARS " echo extra >>NN &&\n"][LIT_CHARS " git update-index --add NN &&\n"][LIT_CHARS " read_tree_must_fail -m "][VarSub tree_O][LIT_CHARS " "][VarSub tree_A][LIT_CHARS " "][VarSub tree_B][LIT_CHARS "\n"]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ F16 &&\n"> F16 &&\n"> ]} ) (Com {[LIT_CHARS test_done]} ) )