(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_description) op: assign_op.Equal rhs: {(SQ <'--graph and simplified history'>)} spids: [17] ) ] ) (C {<.>} {<'./test-lib.sh'>}) (C {<test_expect_success>} {(SQ <'set up rev-list --graph test'>)} { (SQ <'\n'> <'\t# 3 commits on branch A\n'> <'\ttest_commit A1 foo.txt &&\n'> <'\ttest_commit A2 bar.txt &&\n'> <'\ttest_commit A3 bar.txt &&\n'> <'\tgit branch -m master A &&\n'> <'\n'> <'\t# 2 commits on branch B, started from A1\n'> <'\tgit checkout -b B A1 &&\n'> <'\ttest_commit B1 foo.txt &&\n'> <'\ttest_commit B2 abc.txt &&\n'> <'\n'> <'\t# 2 commits on branch C, started from A2\n'> <'\tgit checkout -b C A2 &&\n'> <'\ttest_commit C1 xyz.txt &&\n'> <'\ttest_commit C2 xyz.txt &&\n'> <'\n'> <'\t# Octopus merge B and C into branch A\n'> <'\tgit checkout A &&\n'> <'\tgit merge B C &&\n'> <'\tgit tag A4 &&\n'> <'\n'> <'\ttest_commit A5 bar.txt &&\n'> <'\n'> <'\t# More commits on C, then merge C into A\n'> <'\tgit checkout C &&\n'> <'\ttest_commit C3 foo.txt &&\n'> <'\ttest_commit C4 bar.txt &&\n'> <'\tgit checkout A &&\n'> <'\tgit merge -s ours C &&\n'> <'\tgit tag A6 &&\n'> <'\n'> <'\ttest_commit A7 bar.txt &&\n'> <'\n'> <'\t# Store commit names in variables for later use\n'> <'\tA1=$(git rev-parse --verify A1) &&\n'> <'\tA2=$(git rev-parse --verify A2) &&\n'> <'\tA3=$(git rev-parse --verify A3) &&\n'> <'\tA4=$(git rev-parse --verify A4) &&\n'> <'\tA5=$(git rev-parse --verify A5) &&\n'> <'\tA6=$(git rev-parse --verify A6) &&\n'> <'\tA7=$(git rev-parse --verify A7) &&\n'> <'\tB1=$(git rev-parse --verify B1) &&\n'> <'\tB2=$(git rev-parse --verify B2) &&\n'> <'\tC1=$(git rev-parse --verify C1) &&\n'> <'\tC2=$(git rev-parse --verify C2) &&\n'> <'\tC3=$(git rev-parse --verify C3) &&\n'> <'\tC4=$(git rev-parse --verify C4)\n'> <'\t'> ) } ) (C {<test_expect_success>} {(SQ <'--graph --all'>)} { (SQ <'\n'> <'\trm -f expected &&\n'> <'\techo "* $A7" >> expected &&\n'> <'\techo "* $A6" >> expected &&\n'> <'\techo "|\\\\ " >> expected &&\n'> <'\techo "| * $C4" >> expected &&\n'> <'\techo "| * $C3" >> expected &&\n'> <'\techo "* | $A5" >> expected &&\n'> <'\techo "| | " >> expected &&\n'> <'\techo "| \\\\ " >> expected &&\n'> <'\techo "*-. \\\\ $A4" >> expected &&\n'> <'\techo "|\\\\ \\\\ \\\\ " >> expected &&\n'> <'\techo "| | |/ " >> expected &&\n'> <'\techo "| | * $C2" >> expected &&\n'> <'\techo "| | * $C1" >> expected &&\n'> <'\techo "| * | $B2" >> expected &&\n'> <'\techo "| * | $B1" >> expected &&\n'> <'\techo "* | | $A3" >> expected &&\n'> <'\techo "| |/ " >> expected &&\n'> <'\techo "|/| " >> expected &&\n'> <'\techo "* | $A2" >> expected &&\n'> <'\techo "|/ " >> expected &&\n'> <'\techo "* $A1" >> expected &&\n'> <'\tgit rev-list --graph --all > actual &&\n'> <'\ttest_cmp expected actual\n'> <'\t'> ) } ) (C {<test_expect_success>} {(SQ <'--graph --simplify-by-decoration'>)} { (SQ <'\n'> <'\trm -f expected &&\n'> <'\tgit tag -d A4 &&\n'> <'\techo "* $A7" >> expected &&\n'> <'\techo "* $A6" >> expected &&\n'> <'\techo "|\\\\ " >> expected &&\n'> <'\techo "| * $C4" >> expected &&\n'> <'\techo "| * $C3" >> expected &&\n'> <'\techo "* | $A5" >> expected &&\n'> <'\techo "| | " >> expected &&\n'> <'\techo "| \\\\ " >> expected &&\n'> <'\techo "*-. \\\\ $A4" >> expected &&\n'> <'\techo "|\\\\ \\\\ \\\\ " >> expected &&\n'> <'\techo "| | |/ " >> expected &&\n'> <'\techo "| | * $C2" >> expected &&\n'> <'\techo "| | * $C1" >> expected &&\n'> <'\techo "| * | $B2" >> expected &&\n'> <'\techo "| * | $B1" >> expected &&\n'> <'\techo "* | | $A3" >> expected &&\n'> <'\techo "| |/ " >> expected &&\n'> <'\techo "|/| " >> expected &&\n'> <'\techo "* | $A2" >> expected &&\n'> <'\techo "|/ " >> expected &&\n'> <'\techo "* $A1" >> expected &&\n'> <'\tgit rev-list --graph --all --simplify-by-decoration > actual &&\n'> <'\ttest_cmp expected actual\n'> <'\t'> ) } ) (C {<test_expect_success>} {(SQ <'setup: get rid of decorations on B'>)} {(SQ <'\n'> <'\tgit tag -d B2 &&\n'> <'\tgit tag -d B1 &&\n'> <'\tgit branch -d B\n'>)} ) (C {<test_expect_success>} {(SQ <'--graph --simplify-by-decoration prune branch B'>)} { (SQ <'\n'> <'\trm -f expected &&\n'> <'\techo "* $A7" >> expected &&\n'> <'\techo "* $A6" >> expected &&\n'> <'\techo "|\\\\ " >> expected &&\n'> <'\techo "| * $C4" >> expected &&\n'> <'\techo "| * $C3" >> expected &&\n'> <'\techo "* | $A5" >> expected &&\n'> <'\techo "* | $A4" >> expected &&\n'> <'\techo "|\\\\ \\\\ " >> expected &&\n'> <'\techo "| |/ " >> expected &&\n'> <'\techo "| * $C2" >> expected &&\n'> <'\techo "| * $C1" >> expected &&\n'> <'\techo "* | $A3" >> expected &&\n'> <'\techo "|/ " >> expected &&\n'> <'\techo "* $A2" >> expected &&\n'> <'\techo "* $A1" >> expected &&\n'> <'\tgit rev-list --graph --simplify-by-decoration --all > actual &&\n'> <'\ttest_cmp expected actual\n'> <'\t'> ) } ) (C {<test_expect_success>} {(SQ <'--graph --full-history -- bar.txt'>)} { (SQ <'\n'> <'\trm -f expected &&\n'> <'\techo "* $A7" >> expected &&\n'> <'\techo "* $A6" >> expected &&\n'> <'\techo "|\\\\ " >> expected &&\n'> <'\techo "| * $C4" >> expected &&\n'> <'\techo "* | $A5" >> expected &&\n'> <'\techo "* | $A4" >> expected &&\n'> <'\techo "|\\\\ \\\\ " >> expected &&\n'> <'\techo "| |/ " >> expected &&\n'> <'\techo "* | $A3" >> expected &&\n'> <'\techo "|/ " >> expected &&\n'> <'\techo "* $A2" >> expected &&\n'> <'\tgit rev-list --graph --full-history --all -- bar.txt > actual &&\n'> <'\ttest_cmp expected actual\n'> <'\t'> ) } ) (C {<test_expect_success>} {(SQ <'--graph --full-history --simplify-merges -- bar.txt'>)} { (SQ <'\n'> <'\trm -f expected &&\n'> <'\techo "* $A7" >> expected &&\n'> <'\techo "* $A6" >> expected &&\n'> <'\techo "|\\\\ " >> expected &&\n'> <'\techo "| * $C4" >> expected &&\n'> <'\techo "* | $A5" >> expected &&\n'> <'\techo "* | $A3" >> expected &&\n'> <'\techo "|/ " >> expected &&\n'> <'\techo "* $A2" >> expected &&\n'> <'\tgit rev-list --graph --full-history --simplify-merges --all \\\n'> <'\t\t-- bar.txt > actual &&\n'> <'\ttest_cmp expected actual\n'> <'\t'> ) } ) (C {<test_expect_success>} {(SQ <'--graph -- bar.txt'>)} { (SQ <'\n'> <'\trm -f expected &&\n'> <'\techo "* $A7" >> expected &&\n'> <'\techo "* $A5" >> expected &&\n'> <'\techo "* $A3" >> expected &&\n'> <'\techo "| * $C4" >> expected &&\n'> <'\techo "|/ " >> expected &&\n'> <'\techo "* $A2" >> expected &&\n'> <'\tgit rev-list --graph --all -- bar.txt > actual &&\n'> <'\ttest_cmp expected actual\n'> <'\t'> ) } ) (C {<test_expect_success>} {(SQ <'--graph --sparse -- bar.txt'>)} { (SQ <'\n'> <'\trm -f expected &&\n'> <'\techo "* $A7" >> expected &&\n'> <'\techo "* $A6" >> expected &&\n'> <'\techo "* $A5" >> expected &&\n'> <'\techo "* $A4" >> expected &&\n'> <'\techo "* $A3" >> expected &&\n'> <'\techo "| * $C4" >> expected &&\n'> <'\techo "| * $C3" >> expected &&\n'> <'\techo "| * $C2" >> expected &&\n'> <'\techo "| * $C1" >> expected &&\n'> <'\techo "|/ " >> expected &&\n'> <'\techo "* $A2" >> expected &&\n'> <'\techo "* $A1" >> expected &&\n'> <'\tgit rev-list --graph --sparse --all -- bar.txt > actual &&\n'> <'\ttest_cmp expected actual\n'> <'\t'> ) } ) (C {<test_expect_success>} {(SQ <'--graph ^C4'>)} { (SQ <'\n'> <'\trm -f expected &&\n'> <'\techo "* $A7" >> expected &&\n'> <'\techo "* $A6" >> expected &&\n'> <'\techo "* $A5" >> expected &&\n'> <'\techo "* $A4" >> expected &&\n'> <'\techo "|\\\\ " >> expected &&\n'> <'\techo "| * $B2" >> expected &&\n'> <'\techo "| * $B1" >> expected &&\n'> <'\techo "* $A3" >> expected &&\n'> <'\tgit rev-list --graph --all ^C4 > actual &&\n'> <'\ttest_cmp expected actual\n'> <'\t'> ) } ) (C {<test_expect_success>} {(SQ <'--graph ^C3'>)} { (SQ <'\n'> <'\trm -f expected &&\n'> <'\techo "* $A7" >> expected &&\n'> <'\techo "* $A6" >> expected &&\n'> <'\techo "|\\\\ " >> expected &&\n'> <'\techo "| * $C4" >> expected &&\n'> <'\techo "* $A5" >> expected &&\n'> <'\techo "* $A4" >> expected &&\n'> <'\techo "|\\\\ " >> expected &&\n'> <'\techo "| * $B2" >> expected &&\n'> <'\techo "| * $B1" >> expected &&\n'> <'\techo "* $A3" >> expected &&\n'> <'\tgit rev-list --graph --all ^C3 > actual &&\n'> <'\ttest_cmp expected actual\n'> <'\t'> ) } ) (C {<test_expect_success>} {(SQ <'--graph --boundary ^C3'>)} { (SQ <'\n'> <'\trm -f expected &&\n'> <'\techo "* $A7" >> expected &&\n'> <'\techo "* $A6" >> expected &&\n'> <'\techo "|\\\\ " >> expected &&\n'> <'\techo "| * $C4" >> expected &&\n'> <'\techo "* | $A5" >> expected &&\n'> <'\techo "| | " >> expected &&\n'> <'\techo "| \\\\ " >> expected &&\n'> <'\techo "*-. \\\\ $A4" >> expected &&\n'> <'\techo "|\\\\ \\\\ \\\\ " >> expected &&\n'> <'\techo "| * | | $B2" >> expected &&\n'> <'\techo "| * | | $B1" >> expected &&\n'> <'\techo "* | | | $A3" >> expected &&\n'> <'\techo "o | | | $A2" >> expected &&\n'> <'\techo "|/ / / " >> expected &&\n'> <'\techo "o | | $A1" >> expected &&\n'> <'\techo " / / " >> expected &&\n'> <'\techo "| o $C3" >> expected &&\n'> <'\techo "|/ " >> expected &&\n'> <'\techo "o $C2" >> expected &&\n'> <'\tgit rev-list --graph --boundary --all ^C3 > actual &&\n'> <'\ttest_cmp expected actual\n'> <'\t'> ) } ) (C {<test_done>}) ] )