(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <--ancestry-path>)} spids: [4] ) ] spids: [4] ) (C {(.)} {(./test-lib.sh)}) (FuncDef name: test_merge body: (BraceGroup children: [ (AndOr children: [ (C {(test_tick)}) (AndOr children: [ (C {(git)} {(merge)} {(-s)} {(ours)} {(-m)} {(DQ ($ VSub_Number "$2"))} {(DQ ($ VSub_Number "$1"))} ) (C {(git)} {(tag)} {(DQ ($ VSub_Number "$2"))}) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] spids: [75] ) spids: [70 74] ) (C {(test_expect_success)} {(setup)} { (SQ <"\n"> <"\ttest_commit A &&\n"> <"\ttest_commit B &&\n"> <"\ttest_commit C &&\n"> <"\ttest_commit D &&\n"> <"\ttest_commit E &&\n"> <"\ttest_commit F &&\n"> <"\tgit reset --hard C &&\n"> <"\ttest_commit G &&\n"> <"\ttest_merge E H &&\n"> <"\ttest_commit I &&\n"> <"\ttest_merge F J &&\n"> <"\tgit reset --hard A &&\n"> <"\ttest_commit K &&\n"> <"\ttest_merge J L &&\n"> <"\ttest_commit M\n"> ) } ) (C {(test_expect_success)} {(SQ <"rev-list D..M">)} { (SQ <"\n"> <"\tfor c in E F G H I J K L M; do echo $c; done >expect &&\n"> <"\tgit rev-list --format=%s D..M |\n"> <"\tsed -e \"/^commit /d\" |\n"> <"\tsort >actual &&\n"> <"\ttest_cmp expect actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"rev-list --ancestry-path D..M">)} { (SQ <"\n"> <"\tfor c in E F H I J L M; do echo $c; done >expect &&\n"> <"\tgit rev-list --ancestry-path --format=%s D..M |\n"> <"\tsed -e \"/^commit /d\" |\n"> <"\tsort >actual &&\n"> <"\ttest_cmp expect actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"rev-list D..M -- M.t">)} { (SQ <"\n"> <"\techo M >expect &&\n"> <"\tgit rev-list --format=%s D..M -- M.t |\n"> <"\tsed -e \"/^commit /d\" >actual &&\n"> <"\ttest_cmp expect actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"rev-list --ancestry-path D..M -- M.t">)} { (SQ <"\n"> <"\techo M >expect &&\n"> <"\tgit rev-list --ancestry-path --format=%s D..M -- M.t |\n"> <"\tsed -e \"/^commit /d\" >actual &&\n"> <"\ttest_cmp expect actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"rev-list F...I">)} { (SQ <"\n"> <"\tfor c in F G H I; do echo $c; done >expect &&\n"> <"\tgit rev-list --format=%s F...I |\n"> <"\tsed -e \"/^commit /d\" |\n"> <"\tsort >actual &&\n"> <"\ttest_cmp expect actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"rev-list --ancestry-path F...I">)} { (SQ <"\n"> <"\tfor c in F H I; do echo $c; done >expect &&\n"> <"\tgit rev-list --ancestry-path --format=%s F...I |\n"> <"\tsed -e \"/^commit /d\" |\n"> <"\tsort >actual &&\n"> <"\ttest_cmp expect actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"rev-list G..M -- G.t">)} { (SQ <"\n"> <"\t>expect &&\n"> <"\tgit rev-list --format=%s G..M -- G.t |\n"> <"\tsed -e \"/^commit /d\" >actual &&\n"> <"\ttest_cmp expect actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"rev-list --ancestry-path G..M -- G.t">)} { (SQ <"\n"> <"\techo L >expect &&\n"> <"\tgit rev-list --ancestry-path --format=%s G..M -- G.t |\n"> <"\tsed -e \"/^commit /d\" >actual &&\n"> <"\ttest_cmp expect actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"rev-list --ancestry-path --simplify-merges G^..M -- G.t">)} { (SQ <"\n"> <"\tfor c in G L; do echo $c; done >expect &&\n"> <"\tgit rev-list --ancestry-path --simplify-merges --format=%s G^..M -- G.t |\n"> <"\tsed -e \"/^commit /d\" |\n"> <"\tsort >actual &&\n"> <"\ttest_cmp expect actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"setup criss-cross">)} { (SQ <"\n"> <"\tmkdir criss-cross &&\n"> <"\t(cd criss-cross &&\n"> <"\t git init &&\n"> <"\t test_commit A &&\n"> <"\t git checkout -b xb master &&\n"> <"\t test_commit B &&\n"> <"\t git checkout -b xc master &&\n"> <"\t test_commit C &&\n"> <"\t git checkout -b xbc xb -- &&\n"> <"\t git merge xc &&\n"> <"\t git checkout -b xcb xc -- &&\n"> <"\t git merge xb &&\n"> <"\t git checkout master)\n"> ) } ) (C {(test_expect_success)} {(SQ <"criss-cross: rev-list --ancestry-path cb..bc">)} { (SQ <"\n"> <"\t(cd criss-cross &&\n"> <"\t git rev-list --ancestry-path xcb..xbc > actual &&\n"> <"\t test -z \"$(cat actual)\")\n"> ) } ) (C {(test_expect_success)} {(SQ <"criss-cross: rev-list --ancestry-path --all ^cb">)} { (SQ <"\n"> <"\t(cd criss-cross &&\n"> <"\t git rev-list --ancestry-path --all ^xcb > actual &&\n"> <"\t test -z \"$(cat actual)\")\n"> ) } ) (C {(test_done)}) ] )