(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_description) op: assign_op.Equal rhs: {(SQ <'Merge-recursive merging renames'>)} spids: [4] ) ] ) (C {<.>} {<'./test-lib.sh'>}) (C {<test_expect_success>} {<setup>} { (SQ <'\n'> <'cat >A <<\\EOF &&\n'> <'a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n'> <'b bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\n'> <'c cccccccccccccccccccccccccccccccccccccccccccccccc\n'> <'d dddddddddddddddddddddddddddddddddddddddddddddddd\n'> <'e eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\n'> <'f ffffffffffffffffffffffffffffffffffffffffffffffff\n'> <'g gggggggggggggggggggggggggggggggggggggggggggggggg\n'> <'h hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\n'> <'i iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii\n'> <'j jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj\n'> <'k kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk\n'> <'l llllllllllllllllllllllllllllllllllllllllllllllll\n'> <'m mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm\n'> <'n nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn\n'> <'o oooooooooooooooooooooooooooooooooooooooooooooooo\n'> <'EOF\n'> <'\n'> <'cat >M <<\\EOF &&\n'> <'A AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n'> <'B BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB\n'> <'C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC\n'> <'D DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD\n'> <'E EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE\n'> <'F FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\n'> <'G GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG\n'> <'H HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\n'> <'I IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII\n'> <'J JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ\n'> <'K KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK\n'> <'L LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL\n'> <'M MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM\n'> <'N NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN\n'> <'O OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO\n'> <'EOF\n'> <'\n'> <'git add A M &&\n'> <'git commit -m "initial has A and M" &&\n'> <'git branch white &&\n'> <'git branch red &&\n'> <'git branch blue &&\n'> <'\n'> <'git checkout white &&\n'> <'sed -e "/^g /s/.*/g : white changes a line/" <A >B &&\n'> <'sed -e "/^G /s/.*/G : colored branch changes a line/" <M >N &&\n'> <'rm -f A M &&\n'> <'git update-index --add --remove A B M N &&\n'> <'git commit -m "white renames A->B, M->N" &&\n'> <'\n'> <'git checkout red &&\n'> <'echo created by red >R &&\n'> <'git update-index --add R &&\n'> <'git commit -m "red creates R" &&\n'> <'\n'> <'git checkout blue &&\n'> <'sed -e "/^o /s/.*/g : blue changes a line/" <A >B &&\n'> <'rm -f A &&\n'> <'mv B A &&\n'> <'git update-index A &&\n'> <'git commit -m "blue modify A" &&\n'> <'\n'> <'git checkout master'> ) } ) (C {<test_expect_success>} {(SQ <'merge white into red (A->B,M->N)'>)} { (SQ <'\n'> <'\tgit checkout -b red-white red &&\n'> <'\tgit merge white &&\n'> <'\tgit write-tree &&\n'> <'\ttest_path_is_file B &&\n'> <'\ttest_path_is_file N &&\n'> <'\ttest_path_is_file R &&\n'> <'\ttest_path_is_missing A &&\n'> <'\ttest_path_is_missing M\n'> ) } ) (C {<test_expect_success>} {(SQ <'merge blue into white (A->B, mod A, A untracked)'>)} { (SQ <'\n'> <'\tgit checkout -b white-blue white &&\n'> <'\techo dirty >A &&\n'> <'\tgit merge blue &&\n'> <'\tgit write-tree &&\n'> <'\ttest_path_is_file A &&\n'> <'\techo dirty >expect &&\n'> <'\ttest_cmp expect A &&\n'> <'\ttest_path_is_file B &&\n'> <'\ttest_path_is_file N &&\n'> <'\ttest_path_is_missing M\n'> ) } ) (C {<test_done>}) ] )