(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)}) ] )