(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:'git rebase -p should preserve merges\n' span_id:14) (Token id:Id.Lit_Chars val:'\n' span_id:15) (Token id: Id.Lit_Chars val: 'Run "git rebase -p" and check that merges are properly carried along\n' span_id: 16 ) ) } spids: [12] ) ] ) (C {(.)} {(./test-lib.sh)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_AUTHOR_EMAIL) op: assign_op.Equal rhs: {(bogus_email_address)} spids: [24] ) ] ) (C {(export)} {(GIT_AUTHOR_EMAIL)}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'setup for merge-preserving rebase' span_id:93))} { (SQ (Token id:Id.Lit_Chars val:'echo First > A &&\n' span_id:99) (Token id:Id.Lit_Chars val:'\tgit add A &&\n' span_id:100) (Token id:Id.Lit_Chars val:'\tgit commit -m "Add A1" &&\n' span_id:101) (Token id:Id.Lit_Chars val:'\tgit checkout -b topic &&\n' span_id:102) (Token id:Id.Lit_Chars val:'\techo Second > B &&\n' span_id:103) (Token id:Id.Lit_Chars val:'\tgit add B &&\n' span_id:104) (Token id:Id.Lit_Chars val:'\tgit commit -m "Add B1" &&\n' span_id:105) (Token id:Id.Lit_Chars val:'\tgit checkout -f master &&\n' span_id:106) (Token id:Id.Lit_Chars val:'\techo Third >> A &&\n' span_id:107) (Token id:Id.Lit_Chars val:'\tgit commit -a -m "Modify A2" &&\n' span_id:108) (Token id:Id.Lit_Chars val:'\techo Fifth > B &&\n' span_id:109) (Token id:Id.Lit_Chars val:'\tgit add B &&\n' span_id:110) (Token id:Id.Lit_Chars val:'\tgit commit -m "Add different B" &&\n' span_id:111) (Token id:Id.Lit_Chars val:'\n' span_id:112) (Token id:Id.Lit_Chars val:'\tgit clone ./. clone2 &&\n' span_id:113) (Token id:Id.Lit_Chars val:'\t(\n' span_id:114) (Token id:Id.Lit_Chars val:'\t\tcd clone2 &&\n' span_id:115) (Token id: Id.Lit_Chars val: '\t\tgit checkout -b topic origin/topic &&\n' span_id: 116 ) (Token id:Id.Lit_Chars val:'\t\ttest_must_fail git merge origin/master &&\n' span_id:117) (Token id:Id.Lit_Chars val:'\t\techo Resolved >B &&\n' span_id:118) (Token id:Id.Lit_Chars val:'\t\tgit add B &&\n' span_id:119) (Token id: Id.Lit_Chars val: '\t\tgit commit -m "Merge origin/master into topic"\n' span_id: 120 ) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:121) (Token id:Id.Lit_Chars val:'\n' span_id:122) (Token id:Id.Lit_Chars val:'\tgit clone ./. clone3 &&\n' span_id:123) (Token id:Id.Lit_Chars val:'\t(\n' span_id:124) (Token id:Id.Lit_Chars val:'\t\tcd clone3 &&\n' span_id:125) (Token id:Id.Lit_Chars val:'\t\tgit checkout -b topic2 origin/topic &&\n' span_id:126) (Token id:Id.Lit_Chars val:'\t\techo Sixth > A &&\n' span_id:127) (Token id:Id.Lit_Chars val:'\t\tgit commit -a -m "Modify A3" &&\n' span_id:128) (Token id: Id.Lit_Chars val: '\t\tgit checkout -b topic origin/topic &&\n' span_id: 129 ) (Token id:Id.Lit_Chars val:'\t\tgit merge --no-ff topic2\n' span_id:130) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:131) (Token id:Id.Lit_Chars val:'\n' span_id:132) (Token id:Id.Lit_Chars val:'\tgit clone ./. clone4 &&\n' span_id:133) (Token id:Id.Lit_Chars val:'\t(\n' span_id:134) (Token id:Id.Lit_Chars val:'\t\tcd clone4 &&\n' span_id:135) (Token id:Id.Lit_Chars val:'\t\tgit checkout -b topic2 origin/topic &&\n' span_id:136) (Token id:Id.Lit_Chars val:'\t\techo Sixth > A &&\n' span_id:137) (Token id:Id.Lit_Chars val:'\t\tgit commit -a -m "Modify A3" &&\n' span_id:138) (Token id: Id.Lit_Chars val: '\t\tgit checkout -b topic origin/topic &&\n' span_id: 139 ) (Token id:Id.Lit_Chars val:'\t\tgit merge --no-ff topic2\n' span_id:140) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:141) (Token id:Id.Lit_Chars val:'\n' span_id:142) (Token id:Id.Lit_Chars val:'\tgit checkout topic &&\n' span_id:143) (Token id:Id.Lit_Chars val:'\techo Fourth >> B &&\n' span_id:144) (Token id:Id.Lit_Chars val:'\tgit commit -a -m "Modify B2"\n' span_id:145) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'--continue works after a conflict' span_id:152))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:156) (Token id:Id.Lit_Chars val:'\t(\n' span_id:157) (Token id:Id.Lit_Chars val:'\tcd clone2 &&\n' span_id:158) (Token id:Id.Lit_Chars val:'\tgit fetch &&\n' span_id:159) (Token id:Id.Lit_Chars val:'\ttest_must_fail git rebase -p origin/topic &&\n' span_id:160) (Token id: Id.Lit_Chars val: '\ttest 2 = $(git ls-files B | wc -l) &&\n' span_id: 161 ) (Token id:Id.Lit_Chars val:'\techo Resolved again > B &&\n' span_id:162) (Token id: Id.Lit_Chars val: '\ttest_must_fail git rebase --continue &&\n' span_id: 163 ) (Token id:Id.Lit_Chars val:'\tgrep "^@@@ " .git/rebase-merge/patch &&\n' span_id:164) (Token id:Id.Lit_Chars val:'\tgit add B &&\n' span_id:165) (Token id:Id.Lit_Chars val:'\tgit rebase --continue &&\n' span_id:166) (Token id: Id.Lit_Chars val: '\ttest 1 = $(git rev-list --all --pretty=oneline | grep "Modify A" | wc -l) &&\n' span_id: 167 ) (Token id: Id.Lit_Chars val: '\ttest 1 = $(git rev-list --all --pretty=oneline | grep "Add different" | wc -l) &&\n' span_id: 168 ) (Token id: Id.Lit_Chars val: '\ttest 1 = $(git rev-list --all --pretty=oneline | grep "Merge origin" | wc -l)\n' span_id: 169 ) (Token id:Id.Lit_Chars val:'\t)\n' span_id:170) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'rebase -p preserves no-ff merges' span_id:177))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:181) (Token id:Id.Lit_Chars val:'\t(\n' span_id:182) (Token id:Id.Lit_Chars val:'\tcd clone3 &&\n' span_id:183) (Token id:Id.Lit_Chars val:'\tgit fetch &&\n' span_id:184) (Token id:Id.Lit_Chars val:'\tgit rebase -p origin/topic &&\n' span_id:185) (Token id: Id.Lit_Chars val: '\ttest 3 = $(git rev-list --all --pretty=oneline | grep "Modify A" | wc -l) &&\n' span_id: 186 ) (Token id: Id.Lit_Chars val: '\ttest 1 = $(git rev-list --all --pretty=oneline | grep "Merge branch" | wc -l)\n' span_id: 187 ) (Token id:Id.Lit_Chars val:'\t)\n' span_id:188) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'rebase -p ignores merge.log config' span_id:195))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:199) (Token id:Id.Lit_Chars val:'\t(\n' span_id:200) (Token id:Id.Lit_Chars val:'\tcd clone4 &&\n' span_id:201) (Token id:Id.Lit_Chars val:'\tgit fetch &&\n' span_id:202) (Token id:Id.Lit_Chars val:'\tgit -c merge.log=1 rebase -p origin/topic &&\n' span_id:203) (Token id:Id.Lit_Chars val:'\techo >expected &&\n' span_id:204) (Token id:Id.Lit_Chars val:'\tgit log --format="%b" -1 >current &&\n' span_id:205) (Token id:Id.Lit_Chars val:'\ttest_cmp expected current\n' span_id:206) (Token id:Id.Lit_Chars val:'\t)\n' span_id:207) ) } ) (C {(test_done)}) ] )