(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_description) op: assign_op.Equal rhs: {(SQ <'basic rebase topology tests'>)} spids: [4] ) ] ) (C {<.>} {<'./test-lib.sh'>}) (C {<.>} {(DQ ($ Id.VSub_DollarName '$TEST_DIRECTORY')) <'/lib-rebase.sh'>}) (C {<test_expect_success>} {(SQ <setup>)} { (SQ <'\n'> <'\ttest_commit a &&\n'> <'\ttest_commit b &&\n'> <'\ttest_commit c &&\n'> <'\tgit checkout b &&\n'> <'\ttest_commit d &&\n'> <'\ttest_commit e\n'> ) } ) (command.ShFunction name: test_run_rebase body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:result) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [55] ) ] ) (C {<shift>}) (C {<test_expect_> ($ Id.VSub_DollarName '$result')} {(DQ <'simple rebase '> ($ Id.VSub_Star '$*'))} { (DQ <'\n'> <'\t\treset_rebase &&\n'> <'\t\tgit rebase '> ($ Id.VSub_Star '$*') <' c e &&\n'> <'\t\ttest_cmp_rev c HEAD~2 &&\n'> <'\t\ttest_linear_range \'d e\' c..\n'> <'\t'> ) } ) ] ) ) (C {<test_run_rebase>} {<success>} {(SQ )}) (C {<test_run_rebase>} {<success>} {<-m>}) (C {<test_run_rebase>} {<success>} {<-i>}) (C {<test_run_rebase>} {<success>} {<-p>}) (command.ShFunction name: test_run_rebase body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:result) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [117] ) ] ) (C {<shift>}) (C {<test_expect_> ($ Id.VSub_DollarName '$result')} {(DQ <'rebase '> ($ Id.VSub_Star '$*') <' is no-op if upstream is an ancestor'>)} { (DQ <'\n'> <'\t\treset_rebase &&\n'> <'\t\tgit rebase '> ($ Id.VSub_Star '$*') <' b e &&\n'> <'\t\ttest_cmp_rev e HEAD\n'> <'\t'> ) } ) ] ) ) (C {<test_run_rebase>} {<success>} {(SQ )}) (C {<test_run_rebase>} {<success>} {<-m>}) (C {<test_run_rebase>} {<success>} {<-i>}) (C {<test_run_rebase>} {<success>} {<-p>}) (command.ShFunction name: test_run_rebase body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:result) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [179] ) ] ) (C {<shift>}) (C {<test_expect_> ($ Id.VSub_DollarName '$result')} { (DQ <'rebase '> ($ Id.VSub_Star '$*') <' -f rewrites even if upstream is an ancestor'>) } { (DQ <'\n'> <'\t\treset_rebase &&\n'> <'\t\tgit rebase '> ($ Id.VSub_Star '$*') <' -f b e &&\n'> <'\t\t! test_cmp_rev e HEAD &&\n'> <'\t\ttest_cmp_rev b HEAD~2 &&\n'> <'\t\ttest_linear_range \'d e\' b..\n'> <'\t'> ) } ) ] ) ) (C {<test_run_rebase>} {<success>} {(SQ )}) (C {<test_run_rebase>} {<success>} {<-m>}) (C {<test_run_rebase>} {<success>} {<-i>}) (C {<test_run_rebase>} {<failure>} {<-p>}) (command.ShFunction name: test_run_rebase body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:result) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [243] ) ] ) (C {<shift>}) (C {<test_expect_> ($ Id.VSub_DollarName '$result')} {(DQ <'rebase '> ($ Id.VSub_Star '$*') <' fast-forwards from ancestor of upstream'>)} { (DQ <'\n'> <'\t\treset_rebase &&\n'> <'\t\tgit rebase '> ($ Id.VSub_Star '$*') <' e b &&\n'> <'\t\ttest_cmp_rev e HEAD\n'> <'\t'> ) } ) ] ) ) (C {<test_run_rebase>} {<success>} {(SQ )}) (C {<test_run_rebase>} {<success>} {<-m>}) (C {<test_run_rebase>} {<success>} {<-i>}) (C {<test_run_rebase>} {<success>} {<-p>}) (C {<test_expect_success>} {(SQ <'setup of linear history for range selection tests'>)} { (SQ <'\n'> <'\tgit checkout c &&\n'> <'\ttest_commit g &&\n'> <'\trevert h g &&\n'> <'\tgit checkout d &&\n'> <'\tcherry_pick gp g &&\n'> <'\ttest_commit i &&\n'> <'\tgit checkout b &&\n'> <'\ttest_commit f\n'> ) } ) (command.ShFunction name: test_run_rebase body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:result) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [366] ) ] ) (C {<shift>}) (C {<test_expect_> ($ Id.VSub_DollarName '$result')} {(DQ <'rebase '> ($ Id.VSub_Star '$*') <' drops patches in upstream'>)} { (DQ <'\n'> <'\t\treset_rebase &&\n'> <'\t\tgit rebase '> ($ Id.VSub_Star '$*') <' h i &&\n'> <'\t\ttest_cmp_rev h HEAD~2 &&\n'> <'\t\ttest_linear_range \'d i\' h..\n'> <'\t'> ) } ) ] ) ) (C {<test_run_rebase>} {<success>} {(SQ )}) (C {<test_run_rebase>} {<failure>} {<-m>}) (C {<test_run_rebase>} {<success>} {<-i>}) (C {<test_run_rebase>} {<success>} {<-p>}) (command.ShFunction name: test_run_rebase body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:result) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [429] ) ] ) (C {<shift>}) (C {<test_expect_> ($ Id.VSub_DollarName '$result')} {(DQ <'rebase '> ($ Id.VSub_Star '$*') <' can drop last patch if in upstream'>)} { (DQ <'\n'> <'\t\treset_rebase &&\n'> <'\t\tgit rebase '> ($ Id.VSub_Star '$*') <' h gp &&\n'> <'\t\ttest_cmp_rev h HEAD^ &&\n'> <'\t\ttest_linear_range \'d\' h..\n'> <'\t'> ) } ) ] ) ) (C {<test_run_rebase>} {<success>} {(SQ )}) (C {<test_run_rebase>} {<failure>} {<-m>}) (C {<test_run_rebase>} {<success>} {<-i>}) (C {<test_run_rebase>} {<success>} {<-p>}) (command.ShFunction name: test_run_rebase body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:result) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [492] ) ] ) (C {<shift>}) (C {<test_expect_> ($ Id.VSub_DollarName '$result')} {(DQ <'rebase '> ($ Id.VSub_Star '$*') <' --onto drops patches in upstream'>)} { (DQ <'\n'> <'\t\treset_rebase &&\n'> <'\t\tgit rebase '> ($ Id.VSub_Star '$*') <' --onto f h i &&\n'> <'\t\ttest_cmp_rev f HEAD~2 &&\n'> <'\t\ttest_linear_range \'d i\' f..\n'> <'\t'> ) } ) ] ) ) (C {<test_run_rebase>} {<success>} {(SQ )}) (C {<test_run_rebase>} {<failure>} {<-m>}) (C {<test_run_rebase>} {<success>} {<-i>}) (C {<test_run_rebase>} {<success>} {<-p>}) (command.ShFunction name: test_run_rebase body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:result) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [555] ) ] ) (C {<shift>}) (C {<test_expect_> ($ Id.VSub_DollarName '$result')} {(DQ <'rebase '> ($ Id.VSub_Star '$*') <' --onto does not drop patches in onto'>)} { (DQ <'\n'> <'\t\treset_rebase &&\n'> <'\t\tgit rebase '> ($ Id.VSub_Star '$*') <' --onto h f i &&\n'> <'\t\ttest_cmp_rev h HEAD~3 &&\n'> <'\t\ttest_linear_range \'d gp i\' h..\n'> <'\t'> ) } ) ] ) ) (C {<test_run_rebase>} {<success>} {(SQ )}) (C {<test_run_rebase>} {<success>} {<-m>}) (C {<test_run_rebase>} {<success>} {<-i>}) (C {<test_run_rebase>} {<success>} {<-p>}) (C {<test_expect_success>} {(SQ <'setup of linear history for empty commit tests'>)} { (SQ <'\n'> <'\tgit checkout c &&\n'> <'\tmake_empty j &&\n'> <'\tgit checkout d &&\n'> <'\tmake_empty k &&\n'> <'\ttest_commit l\n'> ) } ) (command.ShFunction name: test_run_rebase body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:result) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [649] ) ] ) (C {<shift>}) (C {<test_expect_> ($ Id.VSub_DollarName '$result')} {(DQ <'rebase '> ($ Id.VSub_Star '$*') <' drops empty commit'>)} { (DQ <'\n'> <'\t\treset_rebase &&\n'> <'\t\tgit rebase '> ($ Id.VSub_Star '$*') <' c l &&\n'> <'\t\ttest_cmp_rev c HEAD~2 &&\n'> <'\t\ttest_linear_range \'d l\' c..\n'> <'\t'> ) } ) ] ) ) (C {<test_run_rebase>} {<success>} {(SQ )}) (C {<test_run_rebase>} {<success>} {<-m>}) (C {<test_run_rebase>} {<success>} {<-i>}) (C {<test_run_rebase>} {<success>} {<-p>}) (command.ShFunction name: test_run_rebase body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:result) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [712] ) ] ) (C {<shift>}) (C {<test_expect_> ($ Id.VSub_DollarName '$result')} {(DQ <'rebase '> ($ Id.VSub_Star '$*') <' --keep-empty'>)} { (DQ <'\n'> <'\t\treset_rebase &&\n'> <'\t\tgit rebase '> ($ Id.VSub_Star '$*') <' --keep-empty c l &&\n'> <'\t\ttest_cmp_rev c HEAD~3 &&\n'> <'\t\ttest_linear_range \'d k l\' c..\n'> <'\t'> ) } ) ] ) ) (C {<test_run_rebase>} {<success>} {(SQ )}) (C {<test_run_rebase>} {<failure>} {<-m>}) (C {<test_run_rebase>} {<success>} {<-i>}) (C {<test_run_rebase>} {<failure>} {<-p>}) (command.ShFunction name: test_run_rebase body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:result) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [775] ) ] ) (C {<shift>}) (C {<test_expect_> ($ Id.VSub_DollarName '$result')} { (DQ <'rebase '> ($ Id.VSub_Star '$*') <' --keep-empty keeps empty even if already in upstream'> ) } { (DQ <'\n'> <'\t\treset_rebase &&\n'> <'\t\tgit rebase '> ($ Id.VSub_Star '$*') <' --keep-empty j l &&\n'> <'\t\ttest_cmp_rev j HEAD~3 &&\n'> <'\t\ttest_linear_range \'d k l\' j..\n'> <'\t'> ) } ) ] ) ) (C {<test_run_rebase>} {<success>} {(SQ )}) (C {<test_run_rebase>} {<failure>} {<-m>}) (C {<test_run_rebase>} {<failure>} {<-i>}) (C {<test_run_rebase>} {<failure>} {<-p>}) (C {<test_expect_success>} {(SQ <'setup of linear history for test involving root'>)} { (SQ <'\n'> <'\tgit checkout b &&\n'> <'\trevert m b &&\n'> <'\tgit checkout --orphan disjoint &&\n'> <'\tgit rm -rf . &&\n'> <'\ttest_commit x &&\n'> <'\ttest_commit y &&\n'> <'\tcherry_pick bp b\n'> ) } ) (command.ShFunction name: test_run_rebase body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:result) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [898] ) ] ) (C {<shift>}) (C {<test_expect_> ($ Id.VSub_DollarName '$result')} {(DQ <'rebase '> ($ Id.VSub_Star '$*') <' --onto --root'>)} { (DQ <'\n'> <'\t\treset_rebase &&\n'> <'\t\tgit rebase '> ($ Id.VSub_Star '$*') <' --onto c --root y &&\n'> <'\t\ttest_cmp_rev c HEAD~2 &&\n'> <'\t\ttest_linear_range \'x y\' c..\n'> <'\t'> ) } ) ] ) ) (C {<test_run_rebase>} {<success>} {(SQ )}) (C {<test_run_rebase>} {<success>} {<-m>}) (C {<test_run_rebase>} {<success>} {<-i>}) (C {<test_run_rebase>} {<success>} {<-p>}) (command.ShFunction name: test_run_rebase body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:result) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [961] ) ] ) (C {<shift>}) (C {<test_expect_> ($ Id.VSub_DollarName '$result')} { (DQ <'rebase '> ($ Id.VSub_Star '$*') <' without --onto --root with disjoint history'>) } { (DQ <'\n'> <'\t\treset_rebase &&\n'> <'\t\tgit rebase '> ($ Id.VSub_Star '$*') <' c y &&\n'> <'\t\ttest_cmp_rev c HEAD~2 &&\n'> <'\t\ttest_linear_range \'x y\' c..\n'> <'\t'> ) } ) ] ) ) (C {<test_run_rebase>} {<success>} {(SQ )}) (C {<test_run_rebase>} {<success>} {<-m>}) (C {<test_run_rebase>} {<success>} {<-i>}) (C {<test_run_rebase>} {<failure>} {<-p>}) (command.ShFunction name: test_run_rebase body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:result) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [1024] ) ] ) (C {<shift>}) (C {<test_expect_> ($ Id.VSub_DollarName '$result')} {(DQ <'rebase '> ($ Id.VSub_Star '$*') <' --onto --root drops patch in onto'>)} { (DQ <'\n'> <'\t\treset_rebase &&\n'> <'\t\tgit rebase '> ($ Id.VSub_Star '$*') <' --onto m --root bp &&\n'> <'\t\ttest_cmp_rev m HEAD~2 &&\n'> <'\t\ttest_linear_range \'x y\' m..\n'> <'\t'> ) } ) ] ) ) (C {<test_run_rebase>} {<success>} {(SQ )}) (C {<test_run_rebase>} {<failure>} {<-m>}) (C {<test_run_rebase>} {<success>} {<-i>}) (C {<test_run_rebase>} {<success>} {<-p>}) (command.ShFunction name: test_run_rebase body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:result) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [1087] ) ] ) (C {<shift>}) (C {<test_expect_> ($ Id.VSub_DollarName '$result')} { (DQ <'rebase '> ($ Id.VSub_Star '$*') <' --onto --root with merge-base does not go to root'> ) } { (DQ <'\n'> <'\t\treset_rebase &&\n'> <'\t\tgit rebase '> ($ Id.VSub_Star '$*') <' --onto m --root g &&\n'> <'\t\ttest_cmp_rev m HEAD~2 &&\n'> <'\t\ttest_linear_range \'c g\' m..\n'> <'\t'> ) } ) ] ) ) (C {<test_run_rebase>} {<success>} {(SQ )}) (C {<test_run_rebase>} {<success>} {<-m>}) (C {<test_run_rebase>} {<success>} {<-i>}) (C {<test_run_rebase>} {<failure>} {<-p>}) (command.ShFunction name: test_run_rebase body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:result) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [1151] ) ] ) (C {<shift>}) (C {<test_expect_> ($ Id.VSub_DollarName '$result')} { (DQ <'rebase '> ($ Id.VSub_Star '$*') <' without --onto --root with disjoint history drops patch in onto'> ) } { (DQ <'\n'> <'\t\treset_rebase &&\n'> <'\t\tgit rebase '> ($ Id.VSub_Star '$*') <' m bp &&\n'> <'\t\ttest_cmp_rev m HEAD~2 &&\n'> <'\t\ttest_linear_range \'x y\' m..\n'> <'\t'> ) } ) ] ) ) (C {<test_run_rebase>} {<success>} {(SQ )}) (C {<test_run_rebase>} {<failure>} {<-m>}) (C {<test_run_rebase>} {<success>} {<-i>}) (C {<test_run_rebase>} {<failure>} {<-p>}) (command.ShFunction name: test_run_rebase body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:result) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [1214] ) ] ) (C {<shift>}) (C {<test_expect_> ($ Id.VSub_DollarName '$result')} {(DQ <'rebase '> ($ Id.VSub_Star '$*') <' --root on linear history is a no-op'>)} { (DQ <'\n'> <'\t\treset_rebase &&\n'> <'\t\tgit rebase '> ($ Id.VSub_Star '$*') <' --root c &&\n'> <'\t\ttest_cmp_rev c HEAD\n'> <'\t'> ) } ) ] ) ) (C {<test_run_rebase>} {<failure>} {(SQ )}) (C {<test_run_rebase>} {<failure>} {<-m>}) (C {<test_run_rebase>} {<failure>} {<-i>}) (C {<test_run_rebase>} {<failure>} {<-p>}) (command.ShFunction name: test_run_rebase body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:result) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [1276] ) ] ) (C {<shift>}) (C {<test_expect_> ($ Id.VSub_DollarName '$result')} { (DQ <'rebase '> ($ Id.VSub_Star '$*') <' -f --root on linear history causes re-write'>) } { (DQ <'\n'> <'\t\treset_rebase &&\n'> <'\t\tgit rebase '> ($ Id.VSub_Star '$*') <' -f --root c &&\n'> <'\t\t! test_cmp_rev a HEAD~2 &&\n'> <'\t\ttest_linear_range \'a b c\' HEAD\n'> <'\t'> ) } ) ] ) ) (C {<test_run_rebase>} {<success>} {(SQ )}) (C {<test_run_rebase>} {<success>} {<-m>}) (C {<test_run_rebase>} {<success>} {<-i>}) (C {<test_run_rebase>} {<success>} {<-p>}) (C {<test_done>}) ] )