(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <'test cherry-picking (and reverting) a root commit'>)} spids: [4] ) ] spids: [4] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(setup)} { (SQ <'\n'> <'\n'> <'\techo first > file1 &&\n'> <'\tgit add file1 &&\n'> <'\ttest_tick &&\n'> <'\tgit commit -m "first" &&\n'> <'\n'> <'\tgit symbolic-ref HEAD refs/heads/second &&\n'> <'\trm .git/index file1 &&\n'> <'\techo second > file2 &&\n'> <'\tgit add file2 &&\n'> <'\ttest_tick &&\n'> <'\tgit commit -m "second" &&\n'> <'\n'> <'\tgit symbolic-ref HEAD refs/heads/third &&\n'> <'\trm .git/index file2 &&\n'> <'\techo third > file3 &&\n'> <'\tgit add file3 &&\n'> <'\ttest_tick &&\n'> <'\tgit commit -m "third"\n'> <'\n'> ) } ) (C {(test_expect_success)} {(SQ <'cherry-pick a root commit'>)} { (SQ <'\n'> <'\n'> <'\tgit checkout second^0 &&\n'> <'\tgit cherry-pick master &&\n'> <'\techo first >expect &&\n'> <'\ttest_cmp expect file1\n'> <'\n'> ) } ) (C {(test_expect_success)} {(SQ <'revert a root commit'>)} {(SQ <'\n'> <'\n'> <'\tgit revert master &&\n'> <'\ttest_path_is_missing file1\n'> <'\n'>)} ) (C {(test_expect_success)} {(SQ <'cherry-pick a root commit with an external strategy'>)} { (SQ <'\n'> <'\n'> <'\tgit cherry-pick --strategy=resolve master &&\n'> <'\techo first >expect &&\n'> <'\ttest_cmp expect file1\n'> <'\n'> ) } ) (C {(test_expect_success)} {(SQ <'revert a root commit with an external strategy'>)} { (SQ <'\n'> <'\n'> <'\tgit revert --strategy=resolve master &&\n'> <'\ttest_path_is_missing file1\n'> <'\n'> ) } ) (C {(test_expect_success)} {(SQ <'cherry-pick two root commits'>)} { (SQ <'\n'> <'\n'> <'\techo first >expect.file1 &&\n'> <'\techo second >expect.file2 &&\n'> <'\techo third >expect.file3 &&\n'> <'\n'> <'\tgit checkout second^0 &&\n'> <'\tgit cherry-pick master third &&\n'> <'\n'> <'\ttest_cmp expect.file1 file1 &&\n'> <'\ttest_cmp expect.file2 file2 &&\n'> <'\ttest_cmp expect.file3 file3 &&\n'> <'\tgit rev-parse --verify HEAD^^ &&\n'> <'\ttest_must_fail git rev-parse --verify HEAD^^^\n'> <'\n'> ) } ) (C {(test_done)}) ] )