(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:test_description)
          op: assign_op.Equal
          rhs: {(SQ <'Tests git rev-list --topo-order functionality'>)}
          spids: [13]
        )
      ]
    )
    (C {<.>} {<'./test-lib.sh'>})
    (C {<.>} {(DQ ($ Id.VSub_DollarName '$TEST_DIRECTORY')) <'/lib-t6000.sh'>})
    (command.ShFunction
      name: list_duplicates
      body: 
        (BraceGroup
          children: [
            (command.Pipeline
              children: [(C {(DQ ($ Id.VSub_At '$@'))}) (C {<sort>}) (C {<uniq>} {<-d>})]
              negated: F
            )
          ]
        )
    )
    (command.Simple
      words: [{<date>}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<path0>})]
      do_fork: T
    )
    (C {<git>} {<update-index>} {<--add>} {<path0>})
    (C {<save_tag>} {<tree>} {<git>} {<write-tree>})
    (C {<on_dates>} {(DQ <'00:00'>)} {(DQ <'00:00'>)} {<hide_error>} {<save_tag>} {<root>} {<unique_commit>} 
      {<root>} {<tree>}
    )
    (C {<on_dates>} {(DQ <'00:01'>)} {(DQ <'00:01'>)} {<save_tag>} {<l0>} {<unique_commit>} {<l0>} {<tree>} 
      {<-p>} {<root>}
    )
    (C {<on_dates>} {(DQ <'00:02'>)} {(DQ <'00:02'>)} {<save_tag>} {<l1>} {<unique_commit>} {<l1>} {<tree>} 
      {<-p>} {<l0>}
    )
    (C {<on_dates>} {(DQ <'00:03'>)} {(DQ <'00:03'>)} {<save_tag>} {<l2>} {<unique_commit>} {<l2>} {<tree>} 
      {<-p>} {<l1>}
    )
    (C {<on_dates>} {(DQ <'00:04'>)} {(DQ <'00:04'>)} {<save_tag>} {<a0>} {<unique_commit>} {<a0>} {<tree>} 
      {<-p>} {<l2>}
    )
    (C {<on_dates>} {(DQ <'00:05'>)} {(DQ <'00:05'>)} {<save_tag>} {<a1>} {<unique_commit>} {<a1>} {<tree>} 
      {<-p>} {<a0>}
    )
    (C {<on_dates>} {(DQ <'00:06'>)} {(DQ <'00:06'>)} {<save_tag>} {<b1>} {<unique_commit>} {<b1>} {<tree>} 
      {<-p>} {<a0>}
    )
    (C {<on_dates>} {(DQ <'00:07'>)} {(DQ <'00:07'>)} {<save_tag>} {<c1>} {<unique_commit>} {<c1>} {<tree>} 
      {<-p>} {<b1>}
    )
    (C {<on_dates>} {(DQ <'00:08'>)} {(DQ <'00:08'>)} {<as_author>} 
      {<foobar> <Id.Lit_Splice '@example'> <.com>} {<save_tag>} {<b2>} {<unique_commit>} {<b2>} {<tree>} {<-p>} {<b1>}
    )
    (C {<on_dates>} {(DQ <'00:09'>)} {(DQ <'00:09'>)} {<save_tag>} {<b3>} {<unique_commit>} {<b3>} {<tree>} 
      {<-p>} {<b2>}
    )
    (C {<on_dates>} {(DQ <'00:10'>)} {(DQ <'00:10'>)} {<save_tag>} {<c2>} {<unique_commit>} {<c2>} {<tree>} 
      {<-p>} {<c1>} {<-p>} {<b2>}
    )
    (C {<on_dates>} {(DQ <'00:11'>)} {(DQ <'00:11'>)} {<save_tag>} {<c3>} {<unique_commit>} {<c3>} {<tree>} 
      {<-p>} {<c2>}
    )
    (C {<on_dates>} {(DQ <'00:12'>)} {(DQ <'00:00'>)} {<save_tag>} {<a2>} {<unique_commit>} {<a2>} {<tree>} 
      {<-p>} {<a1>}
    )
    (C {<on_dates>} {(DQ <'00:13'>)} {(DQ <'00:01'>)} {<save_tag>} {<a3>} {<unique_commit>} {<a3>} {<tree>} 
      {<-p>} {<a2>}
    )
    (C {<on_dates>} {(DQ <'00:14'>)} {(DQ <'00:14'>)} {<save_tag>} {<b4>} {<unique_commit>} {<b4>} {<tree>} 
      {<-p>} {<b3>} {<-p>} {<a3>}
    )
    (C {<on_dates>} {(DQ <'00:15'>)} {(DQ <'00:15'>)} {<save_tag>} {<a4>} {<unique_commit>} {<a4>} {<tree>} 
      {<-p>} {<a3>} {<-p>} {<b4>} {<-p>} {<c3>}
    )
    (C {<on_dates>} {(DQ <'00:16'>)} {(DQ <'00:16'>)} {<save_tag>} {<l3>} {<unique_commit>} {<l3>} {<tree>} 
      {<-p>} {<a4>}
    )
    (C {<on_dates>} {(DQ <'00:17'>)} {(DQ <'00:17'>)} {<save_tag>} {<l4>} {<unique_commit>} {<l4>} {<tree>} 
      {<-p>} {<l3>}
    )
    (C {<on_dates>} {(DQ <'00:18'>)} {(DQ <'00:18'>)} {<save_tag>} {<l5>} {<unique_commit>} {<l5>} {<tree>} 
      {<-p>} {<l4>}
    )
    (C {<on_dates>} {(DQ <'00:19'>)} {(DQ <'00:19'>)} {<save_tag>} {<m1>} {<unique_commit>} {<m1>} {<tree>} 
      {<-p>} {<a4>} {<-p>} {<c3>}
    )
    (C {<on_dates>} {(DQ <'00:20'>)} {(DQ <'00:20'>)} {<save_tag>} {<m2>} {<unique_commit>} {<m2>} {<tree>} 
      {<-p>} {<c3>} {<-p>} {<a4>}
    )
    (C {<on_dates>} {(DQ <'00:21'>)} {(DQ <'00:21'>)} {<hide_error>} {<save_tag>} {<alt_root>} 
      {<unique_commit>} {<alt_root>} {<tree>}
    )
    (C {<on_dates>} {(DQ <'00:22'>)} {(DQ <'00:22'>)} {<save_tag>} {<r0>} {<unique_commit>} {<r0>} {<tree>} 
      {<-p>} {<alt_root>}
    )
    (C {<on_dates>} {(DQ <'00:23'>)} {(DQ <'00:23'>)} {<save_tag>} {<r1>} {<unique_commit>} {<r1>} {<tree>} 
      {<-p>} {<r0>}
    )
    (C {<on_dates>} {(DQ <'00:24'>)} {(DQ <'00:24'>)} {<save_tag>} {<l5r1>} {<unique_commit>} {<l5r1>} 
      {<tree>} {<-p>} {<l5>} {<-p>} {<r1>}
    )
    (C {<on_dates>} {(DQ <'00:25'>)} {(DQ <'00:25'>)} {<save_tag>} {<r1l5>} {<unique_commit>} {<r1l5>} 
      {<tree>} {<-p>} {<r1>} {<-p>} {<l5>}
    )
    (C {<hide_error>} {<save_tag>} {<e1>} {<as_author>} {<e> <Id.Lit_Splice '@example'> <.com>} 
      {<unique_commit>} {<e1>} {<tree>}
    )
    (C {<save_tag>} {<e2>} {<as_author>} {<e> <Id.Lit_Splice '@example'> <.com>} {<unique_commit>} {<e2>} 
      {<tree>} {<-p>} {<e1>}
    )
    (C {<save_tag>} {<f1>} {<as_author>} {<f> <Id.Lit_Splice '@example'> <.com>} {<unique_commit>} {<f1>} 
      {<tree>} {<-p>} {<e1>}
    )
    (C {<save_tag>} {<e3>} {<as_author>} {<e> <Id.Lit_Splice '@example'> <.com>} {<unique_commit>} {<e3>} 
      {<tree>} {<-p>} {<e2>}
    )
    (C {<save_tag>} {<f2>} {<as_author>} {<f> <Id.Lit_Splice '@example'> <.com>} {<unique_commit>} {<f2>} 
      {<tree>} {<-p>} {<f1>}
    )
    (C {<save_tag>} {<e4>} {<as_author>} {<e> <Id.Lit_Splice '@example'> <.com>} {<unique_commit>} {<e4>} 
      {<tree>} {<-p>} {<e3>} {<-p>} {<f2>}
    )
    (C {<save_tag>} {<e5>} {<as_author>} {<e> <Id.Lit_Splice '@example'> <.com>} {<unique_commit>} {<e5>} 
      {<tree>} {<-p>} {<e4>}
    )
    (C {<save_tag>} {<f3>} {<as_author>} {<f> <Id.Lit_Splice '@example'> <.com>} {<unique_commit>} {<f3>} 
      {<tree>} {<-p>} {<f2>}
    )
    (C {<save_tag>} {<f4>} {<as_author>} {<f> <Id.Lit_Splice '@example'> <.com>} {<unique_commit>} {<f4>} 
      {<tree>} {<-p>} {<f3>}
    )
    (C {<save_tag>} {<e6>} {<as_author>} {<e> <Id.Lit_Splice '@example'> <.com>} {<unique_commit>} {<e6>} 
      {<tree>} {<-p>} {<e5>} {<-p>} {<f4>}
    )
    (C {<save_tag>} {<f5>} {<as_author>} {<f> <Id.Lit_Splice '@example'> <.com>} {<unique_commit>} {<f5>} 
      {<tree>} {<-p>} {<f4>}
    )
    (C {<save_tag>} {<f6>} {<as_author>} {<f> <Id.Lit_Splice '@example'> <.com>} {<unique_commit>} {<f6>} 
      {<tree>} {<-p>} {<f5>} {<-p>} {<e6>}
    )
    (C {<save_tag>} {<e7>} {<as_author>} {<e> <Id.Lit_Splice '@example'> <.com>} {<unique_commit>} {<e7>} 
      {<tree>} {<-p>} {<e6>}
    )
    (C {<save_tag>} {<e8>} {<as_author>} {<e> <Id.Lit_Splice '@example'> <.com>} {<unique_commit>} {<e8>} 
      {<tree>} {<-p>} {<e7>}
    )
    (C {<save_tag>} {<e9>} {<as_author>} {<e> <Id.Lit_Splice '@example'> <.com>} {<unique_commit>} {<e9>} 
      {<tree>} {<-p>} {<e8>}
    )
    (C {<save_tag>} {<f7>} {<as_author>} {<f> <Id.Lit_Splice '@example'> <.com>} {<unique_commit>} {<f7>} 
      {<tree>} {<-p>} {<f6>}
    )
    (C {<save_tag>} {<f8>} {<as_author>} {<f> <Id.Lit_Splice '@example'> <.com>} {<unique_commit>} {<f8>} 
      {<tree>} {<-p>} {<f7>}
    )
    (C {<save_tag>} {<f9>} {<as_author>} {<f> <Id.Lit_Splice '@example'> <.com>} {<unique_commit>} {<f9>} 
      {<tree>} {<-p>} {<f8>}
    )
    (C {<save_tag>} {<e10>} {<as_author>} {<e> <Id.Lit_Splice '@example'> <.com>} {<unique_commit>} {<e1>} 
      {<tree>} {<-p>} {<e9>} {<-p>} {<f8>}
    )
    (C {<hide_error>} {<save_tag>} {<g0>} {<unique_commit>} {<g0>} {<tree>})
    (C {<save_tag>} {<g1>} {<unique_commit>} {<g1>} {<tree>} {<-p>} {<g0>})
    (C {<save_tag>} {<h1>} {<unique_commit>} {<g2>} {<tree>} {<-p>} {<g0>})
    (C {<save_tag>} {<g2>} {<unique_commit>} {<g3>} {<tree>} {<-p>} {<g1>} {<-p>} {<h1>})
    (C {<save_tag>} {<h2>} {<unique_commit>} {<g4>} {<tree>} {<-p>} {<g2>})
    (C {<save_tag>} {<g3>} {<unique_commit>} {<g5>} {<tree>} {<-p>} {<g2>})
    (C {<save_tag>} {<g4>} {<unique_commit>} {<g6>} {<tree>} {<-p>} {<g3>} {<-p>} {<h2>})
    (C {<git>} {<update-ref>} {<HEAD>} 
      {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<tag>} {<l5>}))}
    )
    (command.Simple
      words: [
        {<test_output_expect_success>}
        {(SQ <'rev-list has correct number of entries'>)}
        {(SQ <'git rev-list HEAD | wc -l | tr -d \\" \\"'>)}
      ]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: (redir_param.HereDoc here_begin:{<EOF>} here_end_span_id:1267 stdin_parts:[<'19\n'>])
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [
        {<test_output_expect_success>}
        {(SQ <'simple topo order'>)}
        {(SQ <'git rev-list --topo-order  HEAD'>)}
      ]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_span_id: 1302
              stdin_parts: [
                <'l5\n'>
                <'l4\n'>
                <'l3\n'>
                <'a4\n'>
                <'c3\n'>
                <'c2\n'>
                <'c1\n'>
                <'b4\n'>
                <'a3\n'>
                <'a2\n'>
                <'a1\n'>
                <'b3\n'>
                <'b2\n'>
                <'b1\n'>
                <'a0\n'>
                <'l2\n'>
                <'l1\n'>
                <'l0\n'>
                <'root\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [
        {<test_output_expect_success>}
        {(SQ <'simple date order'>)}
        {(SQ <'git rev-list --date-order  HEAD'>)}
      ]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_span_id: 1337
              stdin_parts: [
                <'l5\n'>
                <'l4\n'>
                <'l3\n'>
                <'a4\n'>
                <'b4\n'>
                <'a3\n'>
                <'a2\n'>
                <'c3\n'>
                <'c2\n'>
                <'b3\n'>
                <'b2\n'>
                <'c1\n'>
                <'b1\n'>
                <'a1\n'>
                <'a0\n'>
                <'l2\n'>
                <'l1\n'>
                <'l0\n'>
                <'root\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [
        {<test_output_expect_success>}
        {(SQ <'simple author-date order'>)}
        {(SQ <'git rev-list --author-date-order  HEAD'>)}
      ]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_span_id: 1372
              stdin_parts: [
                <'l5\n'>
                <'l4\n'>
                <'l3\n'>
                <'a4\n'>
                <'b4\n'>
                <'c3\n'>
                <'c2\n'>
                <'b3\n'>
                <'b2\n'>
                <'c1\n'>
                <'b1\n'>
                <'a3\n'>
                <'a2\n'>
                <'a1\n'>
                <'a0\n'>
                <'l2\n'>
                <'l1\n'>
                <'l0\n'>
                <'root\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [
        {<test_output_expect_success>}
        {(SQ <'two diamonds topo order (g6)'>)}
        {(SQ <'git rev-list --topo-order  g4'>)}
      ]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_span_id: 1395
              stdin_parts: [<'g4\n'> <'h2\n'> <'g3\n'> <'g2\n'> <'h1\n'> <'g1\n'> <'g0\n'>]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [
        {<test_output_expect_success>}
        {(SQ <'multiple heads'>)}
        {(SQ <'git rev-list --topo-order a3 b3 c3'>)}
      ]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_span_id: 1425
              stdin_parts: [
                <'a3\n'>
                <'a2\n'>
                <'a1\n'>
                <'c3\n'>
                <'c2\n'>
                <'c1\n'>
                <'b3\n'>
                <'b2\n'>
                <'b1\n'>
                <'a0\n'>
                <'l2\n'>
                <'l1\n'>
                <'l0\n'>
                <'root\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [
        {<test_output_expect_success>}
        {(SQ <'multiple heads, prune at a1'>)}
        {(SQ <'git rev-list --topo-order a3 b3 c3 ^a1'>)}
      ]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_span_id: 1449
              stdin_parts: [<'a3\n'> <'a2\n'> <'c3\n'> <'c2\n'> <'c1\n'> <'b3\n'> <'b2\n'> <'b1\n'>]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [
        {<test_output_expect_success>}
        {(SQ <'multiple heads, prune at l1'>)}
        {(SQ <'git rev-list --topo-order a3 b3 c3 ^l1'>)}
      ]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_span_id: 1476
              stdin_parts: [
                <'a3\n'>
                <'a2\n'>
                <'a1\n'>
                <'c3\n'>
                <'c2\n'>
                <'c1\n'>
                <'b3\n'>
                <'b2\n'>
                <'b1\n'>
                <'a0\n'>
                <'l2\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [
        {<test_output_expect_success>}
        {(SQ <'cross-epoch, head at l5, prune at l1'>)}
        {(SQ <'git rev-list --topo-order l5 ^l1'>)}
      ]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_span_id: 1508
              stdin_parts: [
                <'l5\n'>
                <'l4\n'>
                <'l3\n'>
                <'a4\n'>
                <'c3\n'>
                <'c2\n'>
                <'c1\n'>
                <'b4\n'>
                <'a3\n'>
                <'a2\n'>
                <'a1\n'>
                <'b3\n'>
                <'b2\n'>
                <'b1\n'>
                <'a0\n'>
                <'l2\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [
        {<test_output_expect_success>}
        {(SQ <'duplicated head arguments'>)}
        {(SQ <'git rev-list --topo-order l5 l5 ^l1'>)}
      ]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_span_id: 1540
              stdin_parts: [
                <'l5\n'>
                <'l4\n'>
                <'l3\n'>
                <'a4\n'>
                <'c3\n'>
                <'c2\n'>
                <'c1\n'>
                <'b4\n'>
                <'a3\n'>
                <'a2\n'>
                <'a1\n'>
                <'b3\n'>
                <'b2\n'>
                <'b1\n'>
                <'a0\n'>
                <'l2\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [
        {<test_output_expect_success>}
        {(SQ <'prune near topo'>)}
        {(SQ <'git rev-list --topo-order a4 ^c3'>)}
      ]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_span_id: 1562
              stdin_parts: [<'a4\n'> <'b4\n'> <'a3\n'> <'a2\n'> <'a1\n'> <'b3\n'>]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [
        {<test_output_expect_success>}
        {(DQ <'head has no parent'>)}
        {(SQ <'git rev-list --topo-order  root'>)}
      ]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_span_id: 1579
              stdin_parts: [<'root\n'>]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [
        {<test_output_expect_success>}
        {(DQ <'two nodes - one head, one base'>)}
        {(SQ <'git rev-list --topo-order  l0'>)}
      ]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_span_id: 1597
              stdin_parts: [<'l0\n'> <'root\n'>]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [
        {<test_output_expect_success>}
        {(DQ <'three nodes one head, one internal, one base'>)}
        {(SQ <'git rev-list --topo-order  l1'>)}
      ]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_span_id: 1616
              stdin_parts: [<'l1\n'> <'l0\n'> <'root\n'>]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [
        {<test_output_expect_success>}
        {(DQ <'linear prune l2 ^root'>)}
        {(SQ <'git rev-list --topo-order  l2 ^root'>)}
      ]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_span_id: 1635
              stdin_parts: [<'l2\n'> <'l1\n'> <'l0\n'>]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [
        {<test_output_expect_success>}
        {(DQ <'linear prune l2 ^l0'>)}
        {(SQ <'git rev-list --topo-order  l2 ^l0'>)}
      ]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_span_id: 1653
              stdin_parts: [<'l2\n'> <'l1\n'>]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [
        {<test_output_expect_success>}
        {(DQ <'linear prune l2 ^l1'>)}
        {(SQ <'git rev-list --topo-order  l2 ^l1'>)}
      ]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: (redir_param.HereDoc here_begin:{<EOF>} here_end_span_id:1670 stdin_parts:[<'l2\n'>])
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [
        {<test_output_expect_success>}
        {(DQ <'linear prune l5 ^a4'>)}
        {(SQ <'git rev-list --topo-order  l5 ^a4'>)}
      ]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_span_id: 1689
              stdin_parts: [<'l5\n'> <'l4\n'> <'l3\n'>]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [
        {<test_output_expect_success>}
        {(DQ <'linear prune l5 ^l3'>)}
        {(SQ <'git rev-list --topo-order  l5 ^l3'>)}
      ]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_span_id: 1707
              stdin_parts: [<'l5\n'> <'l4\n'>]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [
        {<test_output_expect_success>}
        {(DQ <'linear prune l5 ^l4'>)}
        {(SQ <'git rev-list --topo-order  l5 ^l4'>)}
      ]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: (redir_param.HereDoc here_begin:{<EOF>} here_end_span_id:1724 stdin_parts:[<'l5\n'>])
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [
        {<test_output_expect_success>}
        {(DQ <'max-count 10 - topo order'>)}
        {(SQ <'git rev-list --topo-order  --max-count=10 l5'>)}
      ]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_span_id: 1750
              stdin_parts: [
                <'l5\n'>
                <'l4\n'>
                <'l3\n'>
                <'a4\n'>
                <'c3\n'>
                <'c2\n'>
                <'c1\n'>
                <'b4\n'>
                <'a3\n'>
                <'a2\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [
        {<test_output_expect_success>}
        {(DQ <'max-count 10 - non topo order'>)}
        {(SQ <'git rev-list --max-count=10 l5'>)}
      ]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_span_id: 1776
              stdin_parts: [
                <'l5\n'>
                <'l4\n'>
                <'l3\n'>
                <'a4\n'>
                <'b4\n'>
                <'a3\n'>
                <'a2\n'>
                <'c3\n'>
                <'c2\n'>
                <'b3\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [
        {<test_output_expect_success>}
        {(SQ <'--max-age=c3, no --topo-order'>)}
        {
          (DQ <'git rev-list --max-age='> 
            (command_sub
              left_token: <Id.Left_DollarParen '$('>
              child: (C {<commit_date>} {<c3>})
            ) <' l5'>
          )
        }
      ]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_span_id: 1806
              stdin_parts: [<'l5\n'> <'l4\n'> <'l3\n'> <'a4\n'> <'b4\n'> <'a3\n'> <'a2\n'> <'c3\n'>]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [
        {<test_output_expect_success>}
        {(SQ <'one specified head reachable from another a4, c3, --topo-order'>)}
        {(DQ <'list_duplicates git rev-list --topo-order a4 c3'>)}
      ]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: (redir_param.HereDoc here_begin:{<EOF>} here_end_span_id:1862)
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [
        {<test_output_expect_success>}
        {(SQ <'one specified head reachable from another c3, a4, --topo-order'>)}
        {(DQ <'list_duplicates git rev-list --topo-order c3 a4'>)}
      ]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: (redir_param.HereDoc here_begin:{<EOF>} here_end_span_id:1878)
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [
        {<test_output_expect_success>}
        {(SQ <'one specified head reachable from another a4, c3, no --topo-order'>)}
        {(DQ <'list_duplicates git rev-list a4 c3'>)}
      ]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: (redir_param.HereDoc here_begin:{<EOF>} here_end_span_id:1894)
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [
        {<test_output_expect_success>}
        {(SQ <'one specified head reachable from another c3, a4, no --topo-order'>)}
        {(DQ <'list_duplicates git rev-list c3 a4'>)}
      ]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: (redir_param.HereDoc here_begin:{<EOF>} here_end_span_id:1910)
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [
        {<test_output_expect_success>}
        {(SQ <'graph with c3 and a4 parents of head'>)}
        {(DQ <'list_duplicates git rev-list m1'>)}
      ]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: (redir_param.HereDoc here_begin:{<EOF>} here_end_span_id:1926)
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [
        {<test_output_expect_success>}
        {(SQ <'graph with a4 and c3 parents of head'>)}
        {(DQ <'list_duplicates git rev-list m2'>)}
      ]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: (redir_param.HereDoc here_begin:{<EOF>} here_end_span_id:1942)
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [
        {<test_expect_success>}
        {(DQ <'head ^head --topo-order'>)}
        {(SQ <'git rev-list --topo-order  a3 ^a3'>)}
      ]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: (redir_param.HereDoc here_begin:{<EOF>} here_end_span_id:1958)
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [
        {<test_expect_success>}
        {(DQ <'head ^head no --topo-order'>)}
        {(SQ <'git rev-list a3 ^a3'>)}
      ]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: (redir_param.HereDoc here_begin:{<EOF>} here_end_span_id:1974)
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [
        {<test_output_expect_success>}
        {(SQ <'simple topo order (l5r1)'>)}
        {(SQ <'git rev-list --topo-order  l5r1'>)}
      ]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_span_id: 2013
              stdin_parts: [
                <'l5r1\n'>
                <'r1\n'>
                <'r0\n'>
                <'alt_root\n'>
                <'l5\n'>
                <'l4\n'>
                <'l3\n'>
                <'a4\n'>
                <'c3\n'>
                <'c2\n'>
                <'c1\n'>
                <'b4\n'>
                <'a3\n'>
                <'a2\n'>
                <'a1\n'>
                <'b3\n'>
                <'b2\n'>
                <'b1\n'>
                <'a0\n'>
                <'l2\n'>
                <'l1\n'>
                <'l0\n'>
                <'root\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [
        {<test_output_expect_success>}
        {(SQ <'simple topo order (r1l5)'>)}
        {(SQ <'git rev-list --topo-order  r1l5'>)}
      ]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_span_id: 2052
              stdin_parts: [
                <'r1l5\n'>
                <'l5\n'>
                <'l4\n'>
                <'l3\n'>
                <'a4\n'>
                <'c3\n'>
                <'c2\n'>
                <'c1\n'>
                <'b4\n'>
                <'a3\n'>
                <'a2\n'>
                <'a1\n'>
                <'b3\n'>
                <'b2\n'>
                <'b1\n'>
                <'a0\n'>
                <'l2\n'>
                <'l1\n'>
                <'l0\n'>
                <'root\n'>
                <'r1\n'>
                <'r0\n'>
                <'alt_root\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [
        {<test_output_expect_success>}
        {(DQ <'don\'t print things unreachable from one branch'>)}
        {(DQ <'git rev-list a3 ^b3 --topo-order'>)}
      ]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_span_id: 2071
              stdin_parts: [<'a3\n'> <'a2\n'> <'a1\n'>]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [
        {<test_output_expect_success>}
        {(DQ <'--topo-order a4 l3'>)}
        {(DQ <'git rev-list --topo-order a4 l3'>)}
      ]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_span_id: 2104
              stdin_parts: [
                <'l3\n'>
                <'a4\n'>
                <'c3\n'>
                <'c2\n'>
                <'c1\n'>
                <'b4\n'>
                <'a3\n'>
                <'a2\n'>
                <'a1\n'>
                <'b3\n'>
                <'b2\n'>
                <'b1\n'>
                <'a0\n'>
                <'l2\n'>
                <'l1\n'>
                <'l0\n'>
                <'root\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (C {<test_done>})
  ]
)