(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_description) op: assign_op.Equal rhs: { (SQ (Token id:Id.Lit_Chars val:'Test cherry-pick continuation features\n' span_id:6) (Token id:Id.Lit_Chars val:'\n' span_id:7) (Token id:Id.Lit_Chars val:' + conflicting: rewrites unrelated to conflicting\n' span_id:8) (Token id: Id.Lit_Chars val: ' + yetanotherpick: rewrites foo to e\n' span_id: 9 ) (Token id:Id.Lit_Chars val:' + anotherpick: rewrites foo to d\n' span_id:10) (Token id: Id.Lit_Chars val: ' + picked: rewrites foo to c\n' span_id: 11 ) (Token id:Id.Lit_Chars val:' + unrelatedpick: rewrites unrelated to reallyunrelated\n' span_id:12) (Token id: Id.Lit_Chars val: ' + base: rewrites foo to b\n' span_id: 13 ) (Token id:Id.Lit_Chars val:' + initial: writes foo as a, unrelated as unrelated\n' span_id:14) (Token id:Id.Lit_Chars val:'\n' span_id:15) ) } spids: [4] ) ] ) (C {(.)} {(./test-lib.sh)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_r10) op: assign_op.Equal rhs: {(SQ (Token id:Id.Lit_Chars val:'\\1\\1\\1\\1\\1\\1\\1\\1\\1\\1' span_id:29))} spids: [27] ) ] ) (command.ShFunction name: pristine_detach body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp] children: [ (C {(git)} {(cherry-pick)} {(--quit)}) (C {(git)} {(checkout)} {(-f)} {(DQ ($ Id.VSub_Number '$1') ('^0'))}) (C {(git)} {(read-tree)} {(-u)} {(--reset)} {(HEAD)}) (C {(git)} {(clean)} {(-d)} {(-f)} {(-f)} {(-q)} {(-x)}) ] ) ] ) ) (C {(test_expect_success)} {(setup)} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:99) (Token id: Id.Lit_Chars val: '\tgit config advice.detachedhead false &&\n' span_id: 100 ) (Token id:Id.Lit_Chars val:'\techo unrelated >unrelated &&\n' span_id:101) (Token id:Id.Lit_Chars val:'\tgit add unrelated &&\n' span_id:102) (Token id:Id.Lit_Chars val:'\ttest_commit initial foo a &&\n' span_id:103) (Token id:Id.Lit_Chars val:'\ttest_commit base foo b &&\n' span_id:104) (Token id:Id.Lit_Chars val:'\ttest_commit unrelatedpick unrelated reallyunrelated &&\n' span_id:105) (Token id:Id.Lit_Chars val:'\ttest_commit picked foo c &&\n' span_id:106) (Token id:Id.Lit_Chars val:'\ttest_commit anotherpick foo d &&\n' span_id:107) (Token id:Id.Lit_Chars val:'\ttest_commit yetanotherpick foo e &&\n' span_id:108) (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:109) (Token id:Id.Lit_Chars val:'\ttest_commit conflicting unrelated\n' span_id:110) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cherry-pick persists data on failure' span_id:117))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:121) (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:122) (Token id: Id.Lit_Chars val: '\ttest_expect_code 1 git cherry-pick -s base..anotherpick &&\n' span_id: 123 ) (Token id:Id.Lit_Chars val:'\ttest_path_is_dir .git/sequencer &&\n' span_id:124) (Token id: Id.Lit_Chars val: '\ttest_path_is_file .git/sequencer/head &&\n' span_id: 125 ) (Token id:Id.Lit_Chars val:'\ttest_path_is_file .git/sequencer/todo &&\n' span_id:126) (Token id: Id.Lit_Chars val: '\ttest_path_is_file .git/sequencer/opts\n' span_id: 127 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cherry-pick mid-cherry-pick-sequence' span_id:134))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:138) (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:139) (Token id:Id.Lit_Chars val:'\ttest_must_fail git cherry-pick base..anotherpick &&\n' span_id:140) (Token id: Id.Lit_Chars val: '\ttest_cmp_rev picked CHERRY_PICK_HEAD &&\n' span_id: 141 ) (Token id: Id.Lit_Chars val: '\t# "oops, I forgot that these patches rely on the change from base"\n' span_id: 142 ) (Token id:Id.Lit_Chars val:'\tgit checkout HEAD foo &&\n' span_id:143) (Token id:Id.Lit_Chars val:'\tgit cherry-pick base &&\n' span_id:144) (Token id:Id.Lit_Chars val:'\tgit cherry-pick picked &&\n' span_id:145) (Token id:Id.Lit_Chars val:'\tgit cherry-pick --continue &&\n' span_id:146) (Token id:Id.Lit_Chars val:'\tgit diff --exit-code anotherpick\n' span_id:147) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cherry-pick persists opts correctly' span_id:154))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:158) (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:159) (Token id: Id.Lit_Chars val: '\ttest_expect_code 128 git cherry-pick -s -m 1 --strategy=recursive -X patience -X ours initial..anotherpick &&\n' span_id: 160 ) (Token id:Id.Lit_Chars val:'\ttest_path_is_dir .git/sequencer &&\n' span_id:161) (Token id: Id.Lit_Chars val: '\ttest_path_is_file .git/sequencer/head &&\n' span_id: 162 ) (Token id:Id.Lit_Chars val:'\ttest_path_is_file .git/sequencer/todo &&\n' span_id:163) (Token id: Id.Lit_Chars val: '\ttest_path_is_file .git/sequencer/opts &&\n' span_id: 164 ) (Token id:Id.Lit_Chars val:'\techo "true" >expect &&\n' span_id:165) (Token id: Id.Lit_Chars val: '\tgit config --file=.git/sequencer/opts --get-all options.signoff >actual &&\n' span_id: 166 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual &&\n' span_id:167) (Token id:Id.Lit_Chars val:'\techo "1" >expect &&\n' span_id:168) (Token id: Id.Lit_Chars val: '\tgit config --file=.git/sequencer/opts --get-all options.mainline >actual &&\n' span_id: 169 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual &&\n' span_id:170) (Token id:Id.Lit_Chars val:'\techo "recursive" >expect &&\n' span_id:171) (Token id: Id.Lit_Chars val: '\tgit config --file=.git/sequencer/opts --get-all options.strategy >actual &&\n' span_id: 172 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual &&\n' span_id:173) (Token id:Id.Lit_Chars val:'\tcat >expect <<-\\EOF &&\n' span_id:174) (Token id:Id.Lit_Chars val:'\tpatience\n' span_id:175) (Token id:Id.Lit_Chars val:'\tours\n' span_id:176) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:177) (Token id: Id.Lit_Chars val: '\tgit config --file=.git/sequencer/opts --get-all options.strategy-option >actual &&\n' span_id: 178 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:179) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'cherry-pick cleans up sequencer state upon success' span_id: 186 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:190) (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:191) (Token id:Id.Lit_Chars val:'\tgit cherry-pick initial..picked &&\n' span_id:192) (Token id:Id.Lit_Chars val:'\ttest_path_is_missing .git/sequencer\n' span_id:193) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: '--quit does not complain when no cherry-pick is in progress' span_id: 200 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:204) (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:205) (Token id:Id.Lit_Chars val:'\tgit cherry-pick --quit\n' span_id:206) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'--abort requires cherry-pick in progress' span_id:213))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:217) (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:218) (Token id:Id.Lit_Chars val:'\ttest_must_fail git cherry-pick --abort\n' span_id:219) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'--quit cleans up sequencer state' span_id:226))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:230) (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:231) (Token id:Id.Lit_Chars val:'\ttest_expect_code 1 git cherry-pick base..picked &&\n' span_id:232) (Token id:Id.Lit_Chars val:'\tgit cherry-pick --quit &&\n' span_id:233) (Token id:Id.Lit_Chars val:'\ttest_path_is_missing .git/sequencer\n' span_id:234) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'--quit keeps HEAD and conflicted index intact' span_id:241))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:245) (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:246) (Token id:Id.Lit_Chars val:'\tcat >expect <<-\\EOF &&\n' span_id:247) (Token id:Id.Lit_Chars val:'\tOBJID\n' span_id:248) (Token id:Id.Lit_Chars val:'\t:100644 100644 OBJID OBJID M\tunrelated\n' span_id:249) (Token id:Id.Lit_Chars val:'\tOBJID\n' span_id:250) (Token id:Id.Lit_Chars val:'\t:000000 100644 OBJID OBJID A\tfoo\n' span_id:251) (Token id: Id.Lit_Chars val: '\t:000000 100644 OBJID OBJID A\tunrelated\n' span_id: 252 ) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:253) (Token id: Id.Lit_Chars val: '\ttest_expect_code 1 git cherry-pick base..picked &&\n' span_id: 254 ) (Token id:Id.Lit_Chars val:'\tgit cherry-pick --quit &&\n' span_id:255) (Token id: Id.Lit_Chars val: '\ttest_path_is_missing .git/sequencer &&\n' span_id: 256 ) (Token id:Id.Lit_Chars val:'\ttest_must_fail git update-index --refresh &&\n' span_id:257) (Token id:Id.Lit_Chars val:'\t{\n' span_id:258) (Token id:Id.Lit_Chars val:'\t\tgit rev-list HEAD |\n' span_id:259) (Token id:Id.Lit_Chars val:'\t\tgit diff-tree --root --stdin |\n' span_id:260) (Token id:Id.Lit_Chars val:'\t\tsed "s/$_x40/OBJID/g"\n' span_id:261) (Token id:Id.Lit_Chars val:'\t} >actual &&\n' span_id:262) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:263) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'--abort to cancel multiple cherry-pick' span_id:270))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:274) (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:275) (Token id:Id.Lit_Chars val:'\ttest_expect_code 1 git cherry-pick base..anotherpick &&\n' span_id:276) (Token id:Id.Lit_Chars val:'\tgit cherry-pick --abort &&\n' span_id:277) (Token id:Id.Lit_Chars val:'\ttest_path_is_missing .git/sequencer &&\n' span_id:278) (Token id:Id.Lit_Chars val:'\ttest_cmp_rev initial HEAD &&\n' span_id:279) (Token id:Id.Lit_Chars val:'\tgit update-index --refresh &&\n' span_id:280) (Token id:Id.Lit_Chars val:'\tgit diff-index --exit-code HEAD\n' span_id:281) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'--abort to cancel single cherry-pick' span_id:288))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:292) (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:293) (Token id:Id.Lit_Chars val:'\ttest_expect_code 1 git cherry-pick picked &&\n' span_id:294) (Token id:Id.Lit_Chars val:'\tgit cherry-pick --abort &&\n' span_id:295) (Token id:Id.Lit_Chars val:'\ttest_path_is_missing .git/sequencer &&\n' span_id:296) (Token id:Id.Lit_Chars val:'\ttest_cmp_rev initial HEAD &&\n' span_id:297) (Token id:Id.Lit_Chars val:'\tgit update-index --refresh &&\n' span_id:298) (Token id:Id.Lit_Chars val:'\tgit diff-index --exit-code HEAD\n' span_id:299) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cherry-pick --abort to cancel multiple revert' span_id:306))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:310) (Token id:Id.Lit_Chars val:'\tpristine_detach anotherpick &&\n' span_id:311) (Token id:Id.Lit_Chars val:'\ttest_expect_code 1 git revert base..picked &&\n' span_id:312) (Token id:Id.Lit_Chars val:'\tgit cherry-pick --abort &&\n' span_id:313) (Token id:Id.Lit_Chars val:'\ttest_path_is_missing .git/sequencer &&\n' span_id:314) (Token id:Id.Lit_Chars val:'\ttest_cmp_rev anotherpick HEAD &&\n' span_id:315) (Token id:Id.Lit_Chars val:'\tgit update-index --refresh &&\n' span_id:316) (Token id:Id.Lit_Chars val:'\tgit diff-index --exit-code HEAD\n' span_id:317) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'revert --abort works, too' span_id:324))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:328) (Token id:Id.Lit_Chars val:'\tpristine_detach anotherpick &&\n' span_id:329) (Token id:Id.Lit_Chars val:'\ttest_expect_code 1 git revert base..picked &&\n' span_id:330) (Token id:Id.Lit_Chars val:'\tgit revert --abort &&\n' span_id:331) (Token id:Id.Lit_Chars val:'\ttest_path_is_missing .git/sequencer &&\n' span_id:332) (Token id:Id.Lit_Chars val:'\ttest_cmp_rev anotherpick HEAD\n' span_id:333) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'--abort to cancel single revert' span_id:340))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:344) (Token id:Id.Lit_Chars val:'\tpristine_detach anotherpick &&\n' span_id:345) (Token id:Id.Lit_Chars val:'\ttest_expect_code 1 git revert picked &&\n' span_id:346) (Token id:Id.Lit_Chars val:'\tgit revert --abort &&\n' span_id:347) (Token id:Id.Lit_Chars val:'\ttest_path_is_missing .git/sequencer &&\n' span_id:348) (Token id:Id.Lit_Chars val:'\ttest_cmp_rev anotherpick HEAD &&\n' span_id:349) (Token id:Id.Lit_Chars val:'\tgit update-index --refresh &&\n' span_id:350) (Token id:Id.Lit_Chars val:'\tgit diff-index --exit-code HEAD\n' span_id:351) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'--abort keeps unrelated change, easy case' span_id:358))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:362) (Token id:Id.Lit_Chars val:'\tpristine_detach unrelatedpick &&\n' span_id:363) (Token id:Id.Lit_Chars val:'\techo changed >expect &&\n' span_id:364) (Token id: Id.Lit_Chars val: '\ttest_expect_code 1 git cherry-pick picked..yetanotherpick &&\n' span_id: 365 ) (Token id:Id.Lit_Chars val:'\techo changed >unrelated &&\n' span_id:366) (Token id:Id.Lit_Chars val:'\tgit cherry-pick --abort &&\n' span_id:367) (Token id:Id.Lit_Chars val:'\ttest_cmp expect unrelated\n' span_id:368) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: '--abort refuses to clobber unrelated change, harder case' span_id: 375 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:379) (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:380) (Token id:Id.Lit_Chars val:'\techo changed >expect &&\n' span_id:381) (Token id: Id.Lit_Chars val: '\ttest_expect_code 1 git cherry-pick base..anotherpick &&\n' span_id: 382 ) (Token id:Id.Lit_Chars val:'\techo changed >unrelated &&\n' span_id:383) (Token id: Id.Lit_Chars val: '\ttest_must_fail git cherry-pick --abort &&\n' span_id: 384 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect unrelated &&\n' span_id:385) (Token id:Id.Lit_Chars val:'\tgit rev-list HEAD >log &&\n' span_id:386) (Token id:Id.Lit_Chars val:'\ttest_line_count = 2 log &&\n' span_id:387) (Token id: Id.Lit_Chars val: '\ttest_must_fail git update-index --refresh &&\n' span_id: 388 ) (Token id:Id.Lit_Chars val:'\n' span_id:389) (Token id:Id.Lit_Chars val:'\tgit checkout unrelated &&\n' span_id:390) (Token id:Id.Lit_Chars val:'\tgit cherry-pick --abort &&\n' span_id:391) (Token id:Id.Lit_Chars val:'\ttest_cmp_rev initial HEAD\n' span_id:392) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'cherry-pick still writes sequencer state when one commit is left' span_id: 399 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:403) (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:404) (Token id:Id.Lit_Chars val:'\ttest_expect_code 1 git cherry-pick base..picked &&\n' span_id:405) (Token id:Id.Lit_Chars val:'\ttest_path_is_dir .git/sequencer &&\n' span_id:406) (Token id:Id.Lit_Chars val:'\techo "resolved" >foo &&\n' span_id:407) (Token id:Id.Lit_Chars val:'\tgit add foo &&\n' span_id:408) (Token id:Id.Lit_Chars val:'\tgit commit &&\n' span_id:409) (Token id:Id.Lit_Chars val:'\t{\n' span_id:410) (Token id:Id.Lit_Chars val:'\t\tgit rev-list HEAD |\n' span_id:411) (Token id:Id.Lit_Chars val:'\t\tgit diff-tree --root --stdin |\n' span_id:412) (Token id:Id.Lit_Chars val:'\t\tsed "s/$_x40/OBJID/g"\n' span_id:413) (Token id:Id.Lit_Chars val:'\t} >actual &&\n' span_id:414) (Token id:Id.Lit_Chars val:'\tcat >expect <<-\\EOF &&\n' span_id:415) (Token id:Id.Lit_Chars val:'\tOBJID\n' span_id:416) (Token id:Id.Lit_Chars val:'\t:100644 100644 OBJID OBJID M\tfoo\n' span_id:417) (Token id:Id.Lit_Chars val:'\tOBJID\n' span_id:418) (Token id:Id.Lit_Chars val:'\t:100644 100644 OBJID OBJID M\tunrelated\n' span_id:419) (Token id:Id.Lit_Chars val:'\tOBJID\n' span_id:420) (Token id:Id.Lit_Chars val:'\t:000000 100644 OBJID OBJID A\tfoo\n' span_id:421) (Token id: Id.Lit_Chars val: '\t:000000 100644 OBJID OBJID A\tunrelated\n' span_id: 422 ) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:423) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:424) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'--abort after last commit in sequence' span_id:431))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:435) (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:436) (Token id:Id.Lit_Chars val:'\ttest_expect_code 1 git cherry-pick base..picked &&\n' span_id:437) (Token id:Id.Lit_Chars val:'\tgit cherry-pick --abort &&\n' span_id:438) (Token id:Id.Lit_Chars val:'\ttest_path_is_missing .git/sequencer &&\n' span_id:439) (Token id:Id.Lit_Chars val:'\ttest_cmp_rev initial HEAD &&\n' span_id:440) (Token id:Id.Lit_Chars val:'\tgit update-index --refresh &&\n' span_id:441) (Token id:Id.Lit_Chars val:'\tgit diff-index --exit-code HEAD\n' span_id:442) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'cherry-pick does not implicitly stomp an existing operation' span_id: 449 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:453) (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:454) (Token id:Id.Lit_Chars val:'\ttest_expect_code 1 git cherry-pick base..anotherpick &&\n' span_id:455) (Token id: Id.Lit_Chars val: '\ttest-chmtime -v +0 .git/sequencer >expect &&\n' span_id: 456 ) (Token id:Id.Lit_Chars val:'\ttest_expect_code 128 git cherry-pick unrelatedpick &&\n' span_id:457) (Token id: Id.Lit_Chars val: '\ttest-chmtime -v +0 .git/sequencer >actual &&\n' span_id: 458 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:459) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: '--continue complains when no cherry-pick is in progress' span_id: 466 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:470) (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:471) (Token id:Id.Lit_Chars val:'\ttest_expect_code 128 git cherry-pick --continue\n' span_id:472) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: '--continue complains when there are unresolved conflicts' span_id: 479 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:483) (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:484) (Token id:Id.Lit_Chars val:'\ttest_expect_code 1 git cherry-pick base..anotherpick &&\n' span_id:485) (Token id: Id.Lit_Chars val: '\ttest_expect_code 128 git cherry-pick --continue\n' span_id: 486 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'--continue of single cherry-pick' span_id:493))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:497) (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:498) (Token id:Id.Lit_Chars val:'\techo c >expect &&\n' span_id:499) (Token id: Id.Lit_Chars val: '\ttest_must_fail git cherry-pick picked &&\n' span_id: 500 ) (Token id:Id.Lit_Chars val:'\techo c >foo &&\n' span_id:501) (Token id:Id.Lit_Chars val:'\tgit add foo &&\n' span_id:502) (Token id:Id.Lit_Chars val:'\tgit cherry-pick --continue &&\n' span_id:503) (Token id:Id.Lit_Chars val:'\n' span_id:504) (Token id:Id.Lit_Chars val:'\ttest_cmp expect foo &&\n' span_id:505) (Token id:Id.Lit_Chars val:'\ttest_cmp_rev initial HEAD^ &&\n' span_id:506) (Token id:Id.Lit_Chars val:'\tgit diff --exit-code HEAD &&\n' span_id:507) (Token id: Id.Lit_Chars val: '\ttest_must_fail git rev-parse --verify CHERRY_PICK_HEAD\n' span_id: 508 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'--continue of single revert' span_id:515))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:519) (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:520) (Token id:Id.Lit_Chars val:'\techo resolved >expect &&\n' span_id:521) (Token id: Id.Lit_Chars val: '\techo "Revert \\"picked\\"" >expect.msg &&\n' span_id: 522 ) (Token id:Id.Lit_Chars val:'\ttest_must_fail git revert picked &&\n' span_id:523) (Token id:Id.Lit_Chars val:'\techo resolved >foo &&\n' span_id:524) (Token id:Id.Lit_Chars val:'\tgit add foo &&\n' span_id:525) (Token id:Id.Lit_Chars val:'\tgit cherry-pick --continue &&\n' span_id:526) (Token id:Id.Lit_Chars val:'\n' span_id:527) (Token id:Id.Lit_Chars val:'\tgit diff --exit-code HEAD &&\n' span_id:528) (Token id:Id.Lit_Chars val:'\ttest_cmp expect foo &&\n' span_id:529) (Token id:Id.Lit_Chars val:'\ttest_cmp_rev initial HEAD^ &&\n' span_id:530) (Token id:Id.Lit_Chars val:'\tgit diff-tree -s --pretty=tformat:%s HEAD >msg &&\n' span_id:531) (Token id:Id.Lit_Chars val:'\ttest_cmp expect.msg msg &&\n' span_id:532) (Token id: Id.Lit_Chars val: '\ttest_must_fail git rev-parse --verify CHERRY_PICK_HEAD &&\n' span_id: 533 ) (Token id:Id.Lit_Chars val:'\ttest_must_fail git rev-parse --verify REVERT_HEAD\n' span_id:534) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'--continue after resolving conflicts' span_id:541))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:545) (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:546) (Token id:Id.Lit_Chars val:'\techo d >expect &&\n' span_id:547) (Token id:Id.Lit_Chars val:'\tcat >expect.log <<-\\EOF &&\n' span_id:548) (Token id:Id.Lit_Chars val:'\tOBJID\n' span_id:549) (Token id:Id.Lit_Chars val:'\t:100644 100644 OBJID OBJID M\tfoo\n' span_id:550) (Token id:Id.Lit_Chars val:'\tOBJID\n' span_id:551) (Token id:Id.Lit_Chars val:'\t:100644 100644 OBJID OBJID M\tfoo\n' span_id:552) (Token id:Id.Lit_Chars val:'\tOBJID\n' span_id:553) (Token id: Id.Lit_Chars val: '\t:100644 100644 OBJID OBJID M\tunrelated\n' span_id: 554 ) (Token id:Id.Lit_Chars val:'\tOBJID\n' span_id:555) (Token id:Id.Lit_Chars val:'\t:000000 100644 OBJID OBJID A\tfoo\n' span_id:556) (Token id:Id.Lit_Chars val:'\t:000000 100644 OBJID OBJID A\tunrelated\n' span_id:557) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:558) (Token id:Id.Lit_Chars val:'\ttest_must_fail git cherry-pick base..anotherpick &&\n' span_id:559) (Token id:Id.Lit_Chars val:'\techo c >foo &&\n' span_id:560) (Token id:Id.Lit_Chars val:'\tgit add foo &&\n' span_id:561) (Token id:Id.Lit_Chars val:'\tgit cherry-pick --continue &&\n' span_id:562) (Token id:Id.Lit_Chars val:'\t{\n' span_id:563) (Token id:Id.Lit_Chars val:'\t\tgit rev-list HEAD |\n' span_id:564) (Token id:Id.Lit_Chars val:'\t\tgit diff-tree --root --stdin |\n' span_id:565) (Token id:Id.Lit_Chars val:'\t\tsed "s/$_x40/OBJID/g"\n' span_id:566) (Token id:Id.Lit_Chars val:'\t} >actual.log &&\n' span_id:567) (Token id:Id.Lit_Chars val:'\ttest_cmp expect foo &&\n' span_id:568) (Token id:Id.Lit_Chars val:'\ttest_cmp expect.log actual.log\n' span_id:569) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: '--continue after resolving conflicts and committing' span_id: 576 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:580) (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:581) (Token id:Id.Lit_Chars val:'\ttest_expect_code 1 git cherry-pick base..anotherpick &&\n' span_id:582) (Token id:Id.Lit_Chars val:'\techo "c" >foo &&\n' span_id:583) (Token id:Id.Lit_Chars val:'\tgit add foo &&\n' span_id:584) (Token id:Id.Lit_Chars val:'\tgit commit &&\n' span_id:585) (Token id:Id.Lit_Chars val:'\tgit cherry-pick --continue &&\n' span_id:586) (Token id: Id.Lit_Chars val: '\ttest_path_is_missing .git/sequencer &&\n' span_id: 587 ) (Token id:Id.Lit_Chars val:'\t{\n' span_id:588) (Token id:Id.Lit_Chars val:'\t\tgit rev-list HEAD |\n' span_id:589) (Token id:Id.Lit_Chars val:'\t\tgit diff-tree --root --stdin |\n' span_id:590) (Token id:Id.Lit_Chars val:'\t\tsed "s/$_x40/OBJID/g"\n' span_id:591) (Token id:Id.Lit_Chars val:'\t} >actual &&\n' span_id:592) (Token id:Id.Lit_Chars val:'\tcat >expect <<-\\EOF &&\n' span_id:593) (Token id:Id.Lit_Chars val:'\tOBJID\n' span_id:594) (Token id:Id.Lit_Chars val:'\t:100644 100644 OBJID OBJID M\tfoo\n' span_id:595) (Token id:Id.Lit_Chars val:'\tOBJID\n' span_id:596) (Token id:Id.Lit_Chars val:'\t:100644 100644 OBJID OBJID M\tfoo\n' span_id:597) (Token id:Id.Lit_Chars val:'\tOBJID\n' span_id:598) (Token id: Id.Lit_Chars val: '\t:100644 100644 OBJID OBJID M\tunrelated\n' span_id: 599 ) (Token id:Id.Lit_Chars val:'\tOBJID\n' span_id:600) (Token id:Id.Lit_Chars val:'\t:000000 100644 OBJID OBJID A\tfoo\n' span_id:601) (Token id:Id.Lit_Chars val:'\t:000000 100644 OBJID OBJID A\tunrelated\n' span_id:602) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:603) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:604) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: '--continue asks for help after resolving patch to nil' span_id: 611 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:615) (Token id:Id.Lit_Chars val:'\tpristine_detach conflicting &&\n' span_id:616) (Token id:Id.Lit_Chars val:'\ttest_must_fail git cherry-pick initial..picked &&\n' span_id:617) (Token id:Id.Lit_Chars val:'\n' span_id:618) (Token id:Id.Lit_Chars val:'\ttest_cmp_rev unrelatedpick CHERRY_PICK_HEAD &&\n' span_id:619) (Token id:Id.Lit_Chars val:'\tgit checkout HEAD -- unrelated &&\n' span_id:620) (Token id:Id.Lit_Chars val:'\ttest_must_fail git cherry-pick --continue 2>msg &&\n' span_id:621) (Token id: Id.Lit_Chars val: '\ttest_i18ngrep "The previous cherry-pick is now empty" msg\n' span_id: 622 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'follow advice and skip nil patch' span_id:629))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:633) (Token id:Id.Lit_Chars val:'\tpristine_detach conflicting &&\n' span_id:634) (Token id:Id.Lit_Chars val:'\ttest_must_fail git cherry-pick initial..picked &&\n' span_id:635) (Token id:Id.Lit_Chars val:'\n' span_id:636) (Token id:Id.Lit_Chars val:'\tgit checkout HEAD -- unrelated &&\n' span_id:637) (Token id: Id.Lit_Chars val: '\ttest_must_fail git cherry-pick --continue &&\n' span_id: 638 ) (Token id:Id.Lit_Chars val:'\tgit reset &&\n' span_id:639) (Token id:Id.Lit_Chars val:'\tgit cherry-pick --continue &&\n' span_id:640) (Token id:Id.Lit_Chars val:'\n' span_id:641) (Token id: Id.Lit_Chars val: '\tgit rev-list initial..HEAD >commits &&\n' span_id: 642 ) (Token id:Id.Lit_Chars val:'\ttest_line_count = 3 commits\n' span_id:643) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'--continue respects opts' span_id:650))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:654) (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:655) (Token id: Id.Lit_Chars val: '\ttest_expect_code 1 git cherry-pick -x base..anotherpick &&\n' span_id: 656 ) (Token id:Id.Lit_Chars val:'\techo "c" >foo &&\n' span_id:657) (Token id:Id.Lit_Chars val:'\tgit add foo &&\n' span_id:658) (Token id:Id.Lit_Chars val:'\tgit commit &&\n' span_id:659) (Token id:Id.Lit_Chars val:'\tgit cherry-pick --continue &&\n' span_id:660) (Token id:Id.Lit_Chars val:'\ttest_path_is_missing .git/sequencer &&\n' span_id:661) (Token id: Id.Lit_Chars val: '\tgit cat-file commit HEAD >anotherpick_msg &&\n' span_id: 662 ) (Token id:Id.Lit_Chars val:'\tgit cat-file commit HEAD~1 >picked_msg &&\n' span_id:663) (Token id: Id.Lit_Chars val: '\tgit cat-file commit HEAD~2 >unrelatedpick_msg &&\n' span_id: 664 ) (Token id:Id.Lit_Chars val:'\tgit cat-file commit HEAD~3 >initial_msg &&\n' span_id:665) (Token id: Id.Lit_Chars val: '\ttest_must_fail grep "cherry picked from" initial_msg &&\n' span_id: 666 ) (Token id:Id.Lit_Chars val:'\tgrep "cherry picked from" unrelatedpick_msg &&\n' span_id:667) (Token id: Id.Lit_Chars val: '\tgrep "cherry picked from" picked_msg &&\n' span_id: 668 ) (Token id:Id.Lit_Chars val:'\tgrep "cherry picked from" anotherpick_msg\n' span_id:669) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'--continue of single-pick respects -x' span_id:676))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:680) (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:681) (Token id:Id.Lit_Chars val:'\ttest_must_fail git cherry-pick -x picked &&\n' span_id:682) (Token id:Id.Lit_Chars val:'\techo c >foo &&\n' span_id:683) (Token id:Id.Lit_Chars val:'\tgit add foo &&\n' span_id:684) (Token id:Id.Lit_Chars val:'\tgit cherry-pick --continue &&\n' span_id:685) (Token id:Id.Lit_Chars val:'\ttest_path_is_missing .git/sequencer &&\n' span_id:686) (Token id:Id.Lit_Chars val:'\tgit cat-file commit HEAD >msg &&\n' span_id:687) (Token id:Id.Lit_Chars val:'\tgrep "cherry picked from" msg\n' span_id:688) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: '--continue respects -x in first commit in multi-pick' span_id: 695 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:699) (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:700) (Token id:Id.Lit_Chars val:'\ttest_must_fail git cherry-pick -x picked anotherpick &&\n' span_id:701) (Token id:Id.Lit_Chars val:'\techo c >foo &&\n' span_id:702) (Token id:Id.Lit_Chars val:'\tgit add foo &&\n' span_id:703) (Token id:Id.Lit_Chars val:'\tgit cherry-pick --continue &&\n' span_id:704) (Token id:Id.Lit_Chars val:'\ttest_path_is_missing .git/sequencer &&\n' span_id:705) (Token id:Id.Lit_Chars val:'\tgit cat-file commit HEAD^ >msg &&\n' span_id:706) (Token id:Id.Lit_Chars val:'\tpicked=$(git rev-parse --verify picked) &&\n' span_id:707) (Token id: Id.Lit_Chars val: '\tgrep "cherry picked from.*$picked" msg\n' span_id: 708 ) ) } ) (C {(test_expect_failure)} { (SQ (Token id: Id.Lit_Chars val: '--signoff is automatically propagated to resolved conflict' span_id: 715 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:719) (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:720) (Token id: Id.Lit_Chars val: '\ttest_expect_code 1 git cherry-pick --signoff base..anotherpick &&\n' span_id: 721 ) (Token id:Id.Lit_Chars val:'\techo "c" >foo &&\n' span_id:722) (Token id:Id.Lit_Chars val:'\tgit add foo &&\n' span_id:723) (Token id:Id.Lit_Chars val:'\tgit commit &&\n' span_id:724) (Token id:Id.Lit_Chars val:'\tgit cherry-pick --continue &&\n' span_id:725) (Token id:Id.Lit_Chars val:'\ttest_path_is_missing .git/sequencer &&\n' span_id:726) (Token id: Id.Lit_Chars val: '\tgit cat-file commit HEAD >anotherpick_msg &&\n' span_id: 727 ) (Token id:Id.Lit_Chars val:'\tgit cat-file commit HEAD~1 >picked_msg &&\n' span_id:728) (Token id: Id.Lit_Chars val: '\tgit cat-file commit HEAD~2 >unrelatedpick_msg &&\n' span_id: 729 ) (Token id:Id.Lit_Chars val:'\tgit cat-file commit HEAD~3 >initial_msg &&\n' span_id:730) (Token id: Id.Lit_Chars val: '\ttest_must_fail grep "Signed-off-by:" initial_msg &&\n' span_id: 731 ) (Token id:Id.Lit_Chars val:'\tgrep "Signed-off-by:" unrelatedpick_msg &&\n' span_id:732) (Token id: Id.Lit_Chars val: '\ttest_must_fail grep "Signed-off-by:" picked_msg &&\n' span_id: 733 ) (Token id:Id.Lit_Chars val:'\tgrep "Signed-off-by:" anotherpick_msg\n' span_id:734) ) } ) (C {(test_expect_failure)} { (SQ (Token id: Id.Lit_Chars val: '--signoff dropped for implicit commit of resolution, multi-pick case' span_id: 741 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:745) (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:746) (Token id:Id.Lit_Chars val:'\ttest_must_fail git cherry-pick -s picked anotherpick &&\n' span_id:747) (Token id:Id.Lit_Chars val:'\techo c >foo &&\n' span_id:748) (Token id:Id.Lit_Chars val:'\tgit add foo &&\n' span_id:749) (Token id:Id.Lit_Chars val:'\tgit cherry-pick --continue &&\n' span_id:750) (Token id:Id.Lit_Chars val:'\n' span_id:751) (Token id:Id.Lit_Chars val:'\tgit diff --exit-code HEAD &&\n' span_id:752) (Token id:Id.Lit_Chars val:'\ttest_cmp_rev initial HEAD^^ &&\n' span_id:753) (Token id:Id.Lit_Chars val:'\tgit cat-file commit HEAD^ >msg &&\n' span_id:754) (Token id:Id.Lit_Chars val:'\t! grep Signed-off-by: msg\n' span_id:755) ) } ) (C {(test_expect_failure)} { (SQ (Token id: Id.Lit_Chars val: 'sign-off needs to be reaffirmed after conflict resolution, single-pick case' span_id: 762 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:766) (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:767) (Token id:Id.Lit_Chars val:'\ttest_must_fail git cherry-pick -s picked &&\n' span_id:768) (Token id:Id.Lit_Chars val:'\techo c >foo &&\n' span_id:769) (Token id:Id.Lit_Chars val:'\tgit add foo &&\n' span_id:770) (Token id:Id.Lit_Chars val:'\tgit cherry-pick --continue &&\n' span_id:771) (Token id:Id.Lit_Chars val:'\n' span_id:772) (Token id:Id.Lit_Chars val:'\tgit diff --exit-code HEAD &&\n' span_id:773) (Token id:Id.Lit_Chars val:'\ttest_cmp_rev initial HEAD^ &&\n' span_id:774) (Token id:Id.Lit_Chars val:'\tgit cat-file commit HEAD >msg &&\n' span_id:775) (Token id:Id.Lit_Chars val:'\t! grep Signed-off-by: msg\n' span_id:776) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'malformed instruction sheet 1' span_id:783))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:787) (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:788) (Token id:Id.Lit_Chars val:'\ttest_expect_code 1 git cherry-pick base..anotherpick &&\n' span_id:789) (Token id:Id.Lit_Chars val:'\techo "resolved" >foo &&\n' span_id:790) (Token id:Id.Lit_Chars val:'\tgit add foo &&\n' span_id:791) (Token id:Id.Lit_Chars val:'\tgit commit &&\n' span_id:792) (Token id:Id.Lit_Chars val:'\tsed "s/pick /pick/" .git/sequencer/todo >new_sheet &&\n' span_id:793) (Token id:Id.Lit_Chars val:'\tcp new_sheet .git/sequencer/todo &&\n' span_id:794) (Token id:Id.Lit_Chars val:'\ttest_expect_code 128 git cherry-pick --continue\n' span_id:795) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'malformed instruction sheet 2' span_id:802))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:806) (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:807) (Token id:Id.Lit_Chars val:'\ttest_expect_code 1 git cherry-pick base..anotherpick &&\n' span_id:808) (Token id:Id.Lit_Chars val:'\techo "resolved" >foo &&\n' span_id:809) (Token id:Id.Lit_Chars val:'\tgit add foo &&\n' span_id:810) (Token id:Id.Lit_Chars val:'\tgit commit &&\n' span_id:811) (Token id:Id.Lit_Chars val:'\tsed "s/pick/revert/" .git/sequencer/todo >new_sheet &&\n' span_id:812) (Token id:Id.Lit_Chars val:'\tcp new_sheet .git/sequencer/todo &&\n' span_id:813) (Token id:Id.Lit_Chars val:'\ttest_expect_code 128 git cherry-pick --continue\n' span_id:814) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'empty commit set' span_id:821))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:825) (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:826) (Token id:Id.Lit_Chars val:'\ttest_expect_code 128 git cherry-pick base..base\n' span_id:827) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'malformed instruction sheet 3' span_id:834))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:838) (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:839) (Token id:Id.Lit_Chars val:'\ttest_expect_code 1 git cherry-pick base..anotherpick &&\n' span_id:840) (Token id:Id.Lit_Chars val:'\techo "resolved" >foo &&\n' span_id:841) (Token id:Id.Lit_Chars val:'\tgit add foo &&\n' span_id:842) (Token id:Id.Lit_Chars val:'\tgit commit &&\n' span_id:843) (Token id: Id.Lit_Chars val: '\tsed "s/pick \\([0-9a-f]*\\)/pick $_r10/" .git/sequencer/todo >new_sheet &&\n' span_id: 844 ) (Token id:Id.Lit_Chars val:'\tcp new_sheet .git/sequencer/todo &&\n' span_id:845) (Token id: Id.Lit_Chars val: '\ttest_expect_code 128 git cherry-pick --continue\n' span_id: 846 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'instruction sheet, fat-fingers version' span_id:853))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:857) (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:858) (Token id:Id.Lit_Chars val:'\ttest_expect_code 1 git cherry-pick base..anotherpick &&\n' span_id:859) (Token id:Id.Lit_Chars val:'\techo "c" >foo &&\n' span_id:860) (Token id:Id.Lit_Chars val:'\tgit add foo &&\n' span_id:861) (Token id:Id.Lit_Chars val:'\tgit commit &&\n' span_id:862) (Token id: Id.Lit_Chars val: '\tsed "s/pick \\([0-9a-f]*\\)/pick \t \\1 \t/" .git/sequencer/todo >new_sheet &&\n' span_id: 863 ) (Token id:Id.Lit_Chars val:'\tcp new_sheet .git/sequencer/todo &&\n' span_id:864) (Token id:Id.Lit_Chars val:'\tgit cherry-pick --continue\n' span_id:865) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'commit descriptions in insn sheet are optional' span_id:872))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:876) (Token id:Id.Lit_Chars val:'\tpristine_detach initial &&\n' span_id:877) (Token id:Id.Lit_Chars val:'\ttest_expect_code 1 git cherry-pick base..anotherpick &&\n' span_id:878) (Token id:Id.Lit_Chars val:'\techo "c" >foo &&\n' span_id:879) (Token id:Id.Lit_Chars val:'\tgit add foo &&\n' span_id:880) (Token id:Id.Lit_Chars val:'\tgit commit &&\n' span_id:881) (Token id:Id.Lit_Chars val:'\tcut -d" " -f1,2 .git/sequencer/todo >new_sheet &&\n' span_id:882) (Token id:Id.Lit_Chars val:'\tcp new_sheet .git/sequencer/todo &&\n' span_id:883) (Token id:Id.Lit_Chars val:'\tgit cherry-pick --continue &&\n' span_id:884) (Token id: Id.Lit_Chars val: '\ttest_path_is_missing .git/sequencer &&\n' span_id: 885 ) (Token id:Id.Lit_Chars val:'\tgit rev-list HEAD >commits &&\n' span_id:886) (Token id:Id.Lit_Chars val:'\ttest_line_count = 4 commits\n' span_id:887) ) } ) (C {(test_done)}) ] )