(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:test_description)
          op: assign_op.Equal
          rhs: {(SQ (Token id:Id.Lit_Chars val:'Test reflog display routines' span_id:6))}
          spids: [4]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:setup span_id:17))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:21) 
          (Token id:Id.Lit_Chars val:'\techo content >file &&\n' span_id:22) (Token id:Id.Lit_Chars val:'\tgit add file &&\n' span_id:23) 
          (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:24) (Token id:Id.Lit_Chars val:'\tgit commit -m one\n' span_id:25)
        )
      }
    )
    (command.Simple
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:(Token id:Id.Redir_Great val:'>' span_id:31) fd:-1 arg_word:{(expect)})
        (redir.HereDoc
          op: (Token id:Id.Redir_DLess val:'<<' span_id:34)
          fd: -1
          here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:36))}
          here_end_span_id: 41
          stdin_parts: [
            ('Reflog: HEAD@{0} (C O Mitter <committer@example.com>)\n')
            ('Reflog message: commit (initial): one\n')
          ]
        )
      ]
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'log -g shows reflog headers' span_id:45))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:49) 
          (Token id:Id.Lit_Chars val:'\tgit log -g -1 >tmp &&\n' span_id:50) (Token id:Id.Lit_Chars val:'\tgrep ^Reflog <tmp >actual &&\n' span_id:51) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:52)
        )
      }
    )
    (command.Simple
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:(Token id:Id.Redir_Great val:'>' span_id:58) fd:-1 arg_word:{(expect)})
        (redir.HereDoc
          op: (Token id:Id.Redir_DLess val:'<<' span_id:61)
          fd: -1
          here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:63))}
          here_end_span_id: 67
          stdin_parts: [('e46513e HEAD@{0}: commit (initial): one\n')]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'oneline reflog format' span_id:71))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:75) 
          (Token id:Id.Lit_Chars val:'\tgit log -g -1 --oneline >actual &&\n' span_id:76) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:77)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'reflog default format' span_id:84))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:88) 
          (Token id:Id.Lit_Chars val:'\tgit reflog -1 >actual &&\n' span_id:89) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:90)
        )
      }
    )
    (command.Simple
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:(Token id:Id.Redir_Great val:'>' span_id:96) fd:-1 arg_word:{(expect)})
        (redir.HereDoc
          op: (Token id:Id.Redir_DLess val:'<<' span_id:99)
          fd: -1
          here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:101))}
          here_end_span_id: 110
          stdin_parts: [
            ('commit e46513e\n')
            ('Reflog: HEAD@{0} (C O Mitter <committer@example.com>)\n')
            ('Reflog message: commit (initial): one\n')
            ('Author: A U Thor <author@example.com>\n')
            ('\n')
            ('    one\n')
          ]
        )
      ]
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'override reflog default format' span_id:114))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:118) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit reflog --format=short -1 >actual &&\n'
            span_id: 119
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:120)
        )
      }
    )
    (command.Simple
      words: [{(cat)}]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:126)
          fd: -1
          arg_word: {(expect)}
        )
        (redir.HereDoc
          op: (Token id:Id.Redir_DLess val:'<<' span_id:129)
          fd: -1
          here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:131))}
          here_end_span_id: 136
          stdin_parts: [
            ('Reflog: HEAD@{Thu Apr 7 15:13:13 2005 -0700} (C O Mitter <committer@example.com>)\n')
            ('Reflog message: commit (initial): one\n')
          ]
        )
      ]
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'using @{now} syntax shows reflog date (multiline)'
            span_id: 140
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:144) 
          (Token id:Id.Lit_Chars val:'\tgit log -g -1 HEAD@{now} >tmp &&\n' span_id:145) (Token id:Id.Lit_Chars val:'\tgrep ^Reflog <tmp >actual &&\n' span_id:146) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:147)
        )
      }
    )
    (command.Simple
      words: [{(cat)}]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:153)
          fd: -1
          arg_word: {(expect)}
        )
        (redir.HereDoc
          op: (Token id:Id.Redir_DLess val:'<<' span_id:156)
          fd: -1
          here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:158))}
          here_end_span_id: 162
          stdin_parts: [('e46513e HEAD@{Thu Apr 7 15:13:13 2005 -0700}: commit (initial): one\n')]
        )
      ]
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'using @{now} syntax shows reflog date (oneline)' span_id:166))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:170) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit log -g -1 --oneline HEAD@{now} >actual &&\n'
            span_id: 171
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:172)
        )
      }
    )
    (command.Simple
      words: [{(cat)}]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:178)
          fd: -1
          arg_word: {(expect)}
        )
        (redir.HereDoc
          op: (Token id:Id.Redir_DLess val:'<<' span_id:181)
          fd: -1
          here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:183))}
          here_end_span_id: 187
          stdin_parts: [('HEAD@{Thu Apr 7 15:13:13 2005 -0700}\n')]
        )
      ]
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'using @{now} syntax shows reflog date (format=%gd)'
            span_id: 191
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:195) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit log -g -1 --format=%gd HEAD@{now} >actual &&\n'
            span_id: 196
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:197)
        )
      }
    )
    (command.Simple
      words: [{(cat)}]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:203)
          fd: -1
          arg_word: {(expect)}
        )
        (redir.HereDoc
          op: (Token id:Id.Redir_DLess val:'<<' span_id:206)
          fd: -1
          here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:208))}
          here_end_span_id: 213
          stdin_parts: [
            ('Reflog: HEAD@{Thu Apr 7 15:13:13 2005 -0700} (C O Mitter <committer@example.com>)\n')
            ('Reflog message: commit (initial): one\n')
          ]
        )
      ]
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'using --date= shows reflog date (multiline)' span_id:217))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:221) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit log -g -1 --date=default >tmp &&\n'
            span_id: 222
          ) (Token id:Id.Lit_Chars val:'\tgrep ^Reflog <tmp >actual &&\n' span_id:223) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:224)
        )
      }
    )
    (command.Simple
      words: [{(cat)}]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:230)
          fd: -1
          arg_word: {(expect)}
        )
        (redir.HereDoc
          op: (Token id:Id.Redir_DLess val:'<<' span_id:233)
          fd: -1
          here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:235))}
          here_end_span_id: 239
          stdin_parts: [('e46513e HEAD@{Thu Apr 7 15:13:13 2005 -0700}: commit (initial): one\n')]
        )
      ]
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'using --date= shows reflog date (oneline)' span_id:243))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:247) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit log -g -1 --oneline --date=default >actual &&\n'
            span_id: 248
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:249)
        )
      }
    )
    (command.Simple
      words: [{(cat)}]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:255)
          fd: -1
          arg_word: {(expect)}
        )
        (redir.HereDoc
          op: (Token id:Id.Redir_DLess val:'<<' span_id:258)
          fd: -1
          here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:260))}
          here_end_span_id: 264
          stdin_parts: [('HEAD@{1112911993 -0700}\n')]
        )
      ]
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'using --date= shows reflog date (format=%gd)' span_id:268))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:272) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit log -g -1 --format=%gd --date=raw >actual &&\n'
            span_id: 273
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:274)
        )
      }
    )
    (command.Simple
      words: [{(cat)}]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:280)
          fd: -1
          arg_word: {(expect)}
        )
        (redir.HereDoc
          op: (Token id:Id.Redir_DLess val:'<<' span_id:283)
          fd: -1
          here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:285))}
          here_end_span_id: 290
          stdin_parts: [
            ('Reflog: HEAD@{0} (C O Mitter <committer@example.com>)\n')
            ('Reflog message: commit (initial): one\n')
          ]
        )
      ]
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'log.date does not invoke "--date" magic (multiline)'
            span_id: 294
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:298) 
          (Token id:Id.Lit_Chars val:'\ttest_config log.date raw &&\n' span_id:299) (Token id:Id.Lit_Chars val:'\tgit log -g -1 >tmp &&\n' span_id:300) 
          (Token id:Id.Lit_Chars val:'\tgrep ^Reflog <tmp >actual &&\n' span_id:301) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:302)
        )
      }
    )
    (command.Simple
      words: [{(cat)}]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:308)
          fd: -1
          arg_word: {(expect)}
        )
        (redir.HereDoc
          op: (Token id:Id.Redir_DLess val:'<<' span_id:311)
          fd: -1
          here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:313))}
          here_end_span_id: 317
          stdin_parts: [('e46513e HEAD@{0}: commit (initial): one\n')]
        )
      ]
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'log.date does not invoke "--date" magic (oneline)'
            span_id: 321
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:325) 
          (Token id:Id.Lit_Chars val:'\ttest_config log.date raw &&\n' span_id:326) (Token id:Id.Lit_Chars val:'\tgit log -g -1 --oneline >actual &&\n' span_id:327) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:328)
        )
      }
    )
    (command.Simple
      words: [{(cat)}]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:334)
          fd: -1
          arg_word: {(expect)}
        )
        (redir.HereDoc
          op: (Token id:Id.Redir_DLess val:'<<' span_id:337)
          fd: -1
          here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:339))}
          here_end_span_id: 343
          stdin_parts: [('HEAD@{0}\n')]
        )
      ]
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'log.date does not invoke "--date" magic (format=%gd)'
            span_id: 347
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:351) 
          (Token id:Id.Lit_Chars val:'\ttest_config log.date raw &&\n' span_id:352) (Token id:Id.Lit_Chars val:'\tgit log -g -1 --format=%gd >actual &&\n' span_id:353) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:354)
        )
      }
    )
    (command.Simple
      words: [{(cat)}]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:360)
          fd: -1
          arg_word: {(expect)}
        )
        (redir.HereDoc
          op: (Token id:Id.Redir_DLess val:'<<' span_id:363)
          fd: -1
          here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:365))}
          here_end_span_id: 369
          stdin_parts: [('HEAD@{0}\n')]
        )
      ]
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: '--date magic does not override explicit @{0} syntax'
            span_id: 373
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:377) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit log -g -1 --format=%gd --date=raw HEAD@{0} >actual &&\n'
            span_id: 378
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:379)
        )
      }
    )
    (command.Simple
      words: [{(Id.Lit_Other ':')}]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:385)
          fd: -1
          arg_word: {(expect)}
        )
      ]
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'empty reflog file' span_id:391))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:395) 
          (Token id:Id.Lit_Chars val:'\tgit branch empty &&\n' span_id:396) (Token id:Id.Lit_Chars val:'\tgit reflog expire --expire=all refs/heads/empty &&\n' span_id:397) 
          (Token id:Id.Lit_Chars val:'\n' span_id:398) (Token id:Id.Lit_Chars val:'\tgit log -g empty >actual &&\n' span_id:399) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:400)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'git log -g -p shows diffs vs. parents' span_id:416))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:420) 
          (Token id:Id.Lit_Chars val:'\ttest_commit two &&\n' span_id:421) (Token id:Id.Lit_Chars val:'\tgit branch flipflop &&\n' span_id:422) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit update-ref refs/heads/flipflop -m flip1 HEAD^ &&\n'
            span_id: 423
          ) (Token id:Id.Lit_Chars val:'\tgit update-ref refs/heads/flipflop -m flop1 HEAD &&\n' span_id:424) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit update-ref refs/heads/flipflop -m flip2 HEAD^ &&\n'
            span_id: 425
          ) (Token id:Id.Lit_Chars val:'\tgit log -g -p flipflop >reflog &&\n' span_id:426) 
          (Token id:Id.Lit_Chars val:'\tgrep -v ^Reflog reflog >actual &&\n' span_id:427) (Token id:Id.Lit_Chars val:'\tgit log -1 -p HEAD^ >log.one &&\n' span_id:428) 
          (Token id:Id.Lit_Chars val:'\tgit log -1 -p HEAD >log.two &&\n' span_id:429) (Token id:Id.Lit_Chars val:'\t(\n' span_id:430) 
          (Token id:Id.Lit_Chars val:'\t\tcat log.one; echo\n' span_id:431) (Token id:Id.Lit_Chars val:'\t\tcat log.two; echo\n' span_id:432) 
          (Token id:Id.Lit_Chars val:'\t\tcat log.one; echo\n' span_id:433) (Token id:Id.Lit_Chars val:'\t\tcat log.two\n' span_id:434) 
          (Token id:Id.Lit_Chars val:'\t) >expect &&\n' span_id:435) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:436)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'reflog exists works' span_id:443))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:447) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit reflog exists refs/heads/master &&\n'
            span_id: 448
          ) (Token id:Id.Lit_Chars val:'\t! git reflog exists refs/heads/nonexistent\n' span_id:449)
        )
      }
    )
    (C {(test_done)})
  ]
)