(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: { (SQ <"git rev-list trivial path optimization test\n"> <"\n"> <" d/z1\n"> <" b0 b1\n"> <" o------------------------*----o master\n"> <" / /\n"> <" o---------o----o----o----o side\n"> <" a0 c0 c1 a1 c2\n"> <" d/f0 d/f1\n"> <" d/z0\n"> <"\n"> ) } spids: [4] ) ] spids: [4] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(setup)} { (SQ <"\n"> <"\techo Hello >a &&\n"> <"\tmkdir d &&\n"> <"\techo World >d/f &&\n"> <"\techo World >d/z &&\n"> <"\tgit add a d &&\n"> <"\ttest_tick &&\n"> <"\tgit commit -m \"Initial commit\" &&\n"> <"\tgit rev-parse --verify HEAD &&\n"> <"\tgit tag initial\n"> ) } ) (C {(test_expect_success)} {(path-optimization)} { (SQ <"\n"> <"\ttest_tick &&\n"> <"\tcommit=$(echo \"Unchanged tree\" | git commit-tree \"HEAD^{tree}\" -p HEAD) &&\n"> <"\ttest $(git rev-list $commit | wc -l) = 2 &&\n"> <"\ttest $(git rev-list $commit -- . | wc -l) = 1\n"> ) } ) (C {(test_expect_success)} {(SQ <"further setup">)} { (SQ <"\n"> <"\tgit checkout -b side &&\n"> <"\techo Irrelevant >c &&\n"> <"\techo Irrelevant >d/f &&\n"> <"\tgit add c d/f &&\n"> <"\ttest_tick &&\n"> <"\tgit commit -m \"Side makes an irrelevant commit\" &&\n"> <"\tgit tag side_c0 &&\n"> <"\techo \"More Irrelevancy\" >c &&\n"> <"\tgit add c &&\n"> <"\ttest_tick &&\n"> <"\tgit commit -m \"Side makes another irrelevant commit\" &&\n"> <"\techo Bye >a &&\n"> <"\tgit add a &&\n"> <"\ttest_tick &&\n"> <"\tgit commit -m \"Side touches a\" &&\n"> <"\tgit tag side_a1 &&\n"> <"\techo \"Yet more Irrelevancy\" >c &&\n"> <"\tgit add c &&\n"> <"\ttest_tick &&\n"> <"\tgit commit -m \"Side makes yet another irrelevant commit\" &&\n"> <"\tgit checkout master &&\n"> <"\techo Another >b &&\n"> <"\techo Munged >d/z &&\n"> <"\tgit add b d/z &&\n"> <"\ttest_tick &&\n"> <"\tgit commit -m \"Master touches b\" &&\n"> <"\tgit tag master_b0 &&\n"> <"\tgit merge side &&\n"> <"\techo Touched >b &&\n"> <"\tgit add b &&\n"> <"\ttest_tick &&\n"> <"\tgit commit -m \"Master touches b again\"\n"> ) } ) (C {(test_expect_success)} {(SQ <"path optimization 2">)} { (SQ <"\n"> <"\tgit rev-parse side_a1 initial >expected &&\n"> <"\tgit rev-list HEAD -- a >actual &&\n"> <"\ttest_cmp expected actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"pathspec with leading path">)} { (SQ <"\n"> <"\tgit rev-parse master^ master_b0 side_c0 initial >expected &&\n"> <"\tgit rev-list HEAD -- d >actual &&\n"> <"\ttest_cmp expected actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"pathspec with glob (1)">)} { (SQ <"\n"> <"\tgit rev-parse master^ master_b0 side_c0 initial >expected &&\n"> <"\tgit rev-list HEAD -- \"d/*\" >actual &&\n"> <"\ttest_cmp expected actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"pathspec with glob (2)">)} { (SQ <"\n"> <"\tgit rev-parse side_c0 initial >expected &&\n"> <"\tgit rev-list HEAD -- \"d/[a-m]*\" >actual &&\n"> <"\ttest_cmp expected actual\n"> ) } ) (C {(test_done)}) ] )