(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: { (SQ <"test cherry-pick and revert with renames\n"> <"\n"> <" --\n"> <" + rename2: renames oops to opos\n"> <" + rename1: renames oops to spoo\n"> <" + added: adds extra line to oops\n"> <" ++ initial: has lines in oops\n"> <"\n"> ) } spids: [4] ) ] spids: [4] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(setup)} { (SQ <"\n"> <"\n"> <"\tfor l in a b c d e f g h i j k l m n o\n"> <"\tdo\n"> <"\t\techo $l$l$l$l$l$l$l$l$l\n"> <"\tdone >oops &&\n"> <"\n"> <"\ttest_tick &&\n"> <"\tgit add oops &&\n"> <"\tgit commit -m initial &&\n"> <"\tgit tag initial &&\n"> <"\n"> <"\ttest_tick &&\n"> <"\techo \"Add extra line at the end\" >>oops &&\n"> <"\tgit commit -a -m added &&\n"> <"\tgit tag added &&\n"> <"\n"> <"\ttest_tick &&\n"> <"\tgit mv oops spoo &&\n"> <"\tgit commit -m rename1 &&\n"> <"\tgit tag rename1 &&\n"> <"\n"> <"\ttest_tick &&\n"> <"\tgit checkout -b side initial &&\n"> <"\tgit mv oops opos &&\n"> <"\tgit commit -m rename2 &&\n"> <"\tgit tag rename2\n"> ) } ) (C {(test_expect_success)} {(SQ <"cherry-pick --nonsense">)} { (SQ <"\n"> <"\n"> <"\tpos=$(git rev-parse HEAD) &&\n"> <"\tgit diff --exit-code HEAD &&\n"> <"\ttest_must_fail git cherry-pick --nonsense 2>msg &&\n"> <"\tgit diff --exit-code HEAD \"$pos\" &&\n"> <"\ttest_i18ngrep "> ) (Lit_Other "[") (Uu) (Lit_Other "]") (sage) (Lit_Other ":") (SQ <" msg\n">) } ) (C {(test_expect_success)} {(SQ <"revert --nonsense">)} { (SQ <"\n"> <"\n"> <"\tpos=$(git rev-parse HEAD) &&\n"> <"\tgit diff --exit-code HEAD &&\n"> <"\ttest_must_fail git revert --nonsense 2>msg &&\n"> <"\tgit diff --exit-code HEAD \"$pos\" &&\n"> <"\ttest_i18ngrep "> ) (Lit_Other "[") (Uu) (Lit_Other "]") (sage) (Lit_Other ":") (SQ <" msg\n">) } ) (C {(test_expect_success)} {(SQ <"cherry-pick after renaming branch">)} { (SQ <"\n"> <"\n"> <"\tgit checkout rename2 &&\n"> <"\tgit cherry-pick added &&\n"> <"\ttest $(git rev-parse HEAD^) = $(git rev-parse rename2) &&\n"> <"\ttest -f opos &&\n"> <"\tgrep \"Add extra line at the end\" opos &&\n"> <"\tgit reflog -1 | grep cherry-pick\n"> <"\n"> ) } ) (C {(test_expect_success)} {(SQ <"revert after renaming branch">)} { (SQ <"\n"> <"\n"> <"\tgit checkout rename1 &&\n"> <"\tgit revert added &&\n"> <"\ttest $(git rev-parse HEAD^) = $(git rev-parse rename1) &&\n"> <"\ttest -f spoo &&\n"> <"\t! grep \"Add extra line at the end\" spoo &&\n"> <"\tgit reflog -1 | grep revert\n"> <"\n"> ) } ) (C {(test_expect_success)} {(SQ <"cherry-pick on stat-dirty working tree">)} { (SQ <"\n"> <"\tgit clone . copy &&\n"> <"\t(\n"> <"\t\tcd copy &&\n"> <"\t\tgit checkout initial &&\n"> <"\t\ttest-chmtime +40 oops &&\n"> <"\t\tgit cherry-pick added\n"> <"\t)\n"> ) } ) (C {(test_expect_success)} {(SQ <"revert forbidden on dirty working tree">)} { (SQ <"\n"> <"\n"> <"\techo content >extra_file &&\n"> <"\tgit add extra_file &&\n"> <"\ttest_must_fail git revert HEAD 2>errors &&\n"> <"\ttest_i18ngrep \"your local changes would be overwritten by \" errors\n"> <"\n"> ) } ) (C {(test_expect_success)} {(SQ <"cherry-pick on unborn branch">)} { (SQ <"\n"> <"\tgit checkout --orphan unborn &&\n"> <"\tgit rm --cached -r . &&\n"> <"\trm -rf * &&\n"> <"\tgit cherry-pick initial &&\n"> <"\tgit diff --quiet initial &&\n"> <"\t! test_cmp_rev initial HEAD\n"> ) } ) (C {(test_expect_success)} {(SQ <"cherry-pick \"-\" to pick from previous branch">)} { (SQ <"\n"> <"\tgit checkout unborn &&\n"> <"\ttest_commit to-pick actual content &&\n"> <"\tgit checkout master &&\n"> <"\tgit cherry-pick - &&\n"> <"\techo content >expect &&\n"> <"\ttest_cmp expect actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"cherry-pick \"-\" is meaningless without checkout">)} { (SQ <"\n"> <"\ttest_create_repo afresh &&\n"> <"\t(\n"> <"\t\tcd afresh &&\n"> <"\t\ttest_commit one &&\n"> <"\t\ttest_commit two &&\n"> <"\t\ttest_commit three &&\n"> <"\t\ttest_must_fail git cherry-pick -\n"> <"\t)\n"> ) } ) (C {(test_expect_success)} {(SQ <"cherry-pick \"-\" works with arguments">)} { (SQ <"\n"> <"\tgit checkout -b side-branch &&\n"> <"\ttest_commit change actual change &&\n"> <"\tgit checkout master &&\n"> <"\tgit cherry-pick -s - &&\n"> <"\techo \"Signed-off-by: C O Mitter <committer@example.com>\" >expect &&\n"> <"\tgit cat-file commit HEAD | grep ^Signed-off-by: >signoff &&\n"> <"\ttest_cmp expect signoff &&\n"> <"\techo change >expect &&\n"> <"\ttest_cmp expect actual\n"> ) } ) (C {(test_done)}) ] )