(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:'rev-list/rev-parse --glob' span_id:6))}
          spids: [4]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (command.ShFunction
      name: commit
      body: 
        (command.BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp]
              children: [
                (C {(test_tick)})
                (command.Simple
                  words: [{(echo)} {($ Id.VSub_Number '$1')}]
                  redirects: [
                    (redir.Redir
                      op: (Token id:Id.Redir_Great val:'>' span_id:32)
                      fd: -1
                      arg_word: {(foo)}
                    )
                  ]
                )
                (C {(git)} {(add)} {(foo)})
                (C {(git)} {(commit)} {(-m)} {(DQ ($ Id.VSub_Number '$1'))})
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: compare
      body: 
        (command.BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp Id.Op_DAmp]
              children: [
                (command.Simple
                  words: [{(git)} {($ Id.VSub_Number '$1')} {($ Id.VSub_Number '$2')}]
                  redirects: [
                    (redir.Redir
                      op: (Token id:Id.Redir_Great val:'>' span_id:79)
                      fd: -1
                      arg_word: {(expected)}
                    )
                  ]
                )
                (command.Simple
                  words: [{(git)} {($ Id.VSub_Number '$1')} {($ Id.VSub_Number '$3')}]
                  redirects: [
                    (redir.Redir
                      op: (Token id:Id.Redir_Great val:'>' span_id:91)
                      fd: -1
                      arg_word: {(actual)}
                    )
                  ]
                )
                (C {(test_cmp)} {(expected)} {(actual)})
              ]
            )
          ]
        )
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:setup span_id:109))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:113) (Token id:Id.Lit_Chars val:'\n' span_id:114) 
          (Token id:Id.Lit_Chars val:'\tcommit master &&\n' span_id:115) (Token id:Id.Lit_Chars val:'\tgit checkout -b subspace/one master &&\n' span_id:116) 
          (Token id:Id.Lit_Chars val:'\tcommit one &&\n' span_id:117) (Token id:Id.Lit_Chars val:'\tgit checkout -b subspace/two master &&\n' span_id:118) 
          (Token id:Id.Lit_Chars val:'\tcommit two &&\n' span_id:119) (Token id:Id.Lit_Chars val:'\tgit checkout -b subspace-x master &&\n' span_id:120) 
          (Token id:Id.Lit_Chars val:'\tcommit subspace-x &&\n' span_id:121) (Token id:Id.Lit_Chars val:'\tgit checkout -b other/three master &&\n' span_id:122) 
          (Token id:Id.Lit_Chars val:'\tcommit three &&\n' span_id:123) (Token id:Id.Lit_Chars val:'\tgit checkout -b someref master &&\n' span_id:124) 
          (Token id:Id.Lit_Chars val:'\tcommit some &&\n' span_id:125) (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:126) 
          (Token id:Id.Lit_Chars val:'\tcommit master2 &&\n' span_id:127) (Token id:Id.Lit_Chars val:'\tgit tag foo/bar master &&\n' span_id:128) 
          (Token id:Id.Lit_Chars val:'\tcommit master3 &&\n' span_id:129) (Token id:Id.Lit_Chars val:'\tgit update-ref refs/remotes/foo/baz master &&\n' span_id:130) 
          (Token id:Id.Lit_Chars val:'\tcommit master4\n' span_id:131)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'rev-parse --glob=refs/heads/subspace/*' span_id:138))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:142) (Token id:Id.Lit_Chars val:'\n' span_id:143) 
          (Token
            id: Id.Lit_Chars
            val: '\tcompare rev-parse "subspace/one subspace/two" "--glob=refs/heads/subspace/*"\n'
            span_id: 144
          ) (Token id:Id.Lit_Chars val:'\n' span_id:145)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'rev-parse --glob=heads/subspace/*' span_id:152))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:156) (Token id:Id.Lit_Chars val:'\n' span_id:157) 
          (Token
            id: Id.Lit_Chars
            val: '\tcompare rev-parse "subspace/one subspace/two" "--glob=heads/subspace/*"\n'
            span_id: 158
          ) (Token id:Id.Lit_Chars val:'\n' span_id:159)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'rev-parse --glob=refs/heads/subspace/' span_id:166))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:170) (Token id:Id.Lit_Chars val:'\n' span_id:171) 
          (Token
            id: Id.Lit_Chars
            val: '\tcompare rev-parse "subspace/one subspace/two" "--glob=refs/heads/subspace/"\n'
            span_id: 172
          ) (Token id:Id.Lit_Chars val:'\n' span_id:173)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'rev-parse --glob=heads/subspace/' span_id:180))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:184) (Token id:Id.Lit_Chars val:'\n' span_id:185) 
          (Token
            id: Id.Lit_Chars
            val: '\tcompare rev-parse "subspace/one subspace/two" "--glob=heads/subspace/"\n'
            span_id: 186
          ) (Token id:Id.Lit_Chars val:'\n' span_id:187)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'rev-parse --glob=heads/subspace' span_id:194))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:198) (Token id:Id.Lit_Chars val:'\n' span_id:199) 
          (Token
            id: Id.Lit_Chars
            val: '\tcompare rev-parse "subspace/one subspace/two" "--glob=heads/subspace"\n'
            span_id: 200
          ) (Token id:Id.Lit_Chars val:'\n' span_id:201)
        )
      }
    )
    (C {(test_expect_failure)} 
      {(SQ (Token id:Id.Lit_Chars val:'rev-parse accepts --glob as detached option' span_id:208))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:212) (Token id:Id.Lit_Chars val:'\n' span_id:213) 
          (Token
            id: Id.Lit_Chars
            val: '\tcompare rev-parse "subspace/one subspace/two" "--glob heads/subspace"\n'
            span_id: 214
          ) (Token id:Id.Lit_Chars val:'\n' span_id:215)
        )
      }
    )
    (C {(test_expect_failure)} 
      {(SQ (Token id:Id.Lit_Chars val:'rev-parse is not confused by option-like glob' span_id:222))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:226) (Token id:Id.Lit_Chars val:'\n' span_id:227) 
          (Token
            id: Id.Lit_Chars
            val: '\tcompare rev-parse "master" "--glob --symbolic master"\n'
            span_id: 228
          ) (Token id:Id.Lit_Chars val:'\n' span_id:229)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'rev-parse --branches=subspace/*' span_id:236))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:240) (Token id:Id.Lit_Chars val:'\n' span_id:241) 
          (Token
            id: Id.Lit_Chars
            val: '\tcompare rev-parse "subspace/one subspace/two" "--branches=subspace/*"\n'
            span_id: 242
          ) (Token id:Id.Lit_Chars val:'\n' span_id:243)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'rev-parse --branches=subspace/' span_id:250))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:254) (Token id:Id.Lit_Chars val:'\n' span_id:255) 
          (Token
            id: Id.Lit_Chars
            val: '\tcompare rev-parse "subspace/one subspace/two" "--branches=subspace/"\n'
            span_id: 256
          ) (Token id:Id.Lit_Chars val:'\n' span_id:257)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'rev-parse --branches=subspace' span_id:264))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:268) (Token id:Id.Lit_Chars val:'\n' span_id:269) 
          (Token
            id: Id.Lit_Chars
            val: '\tcompare rev-parse "subspace/one subspace/two" "--branches=subspace"\n'
            span_id: 270
          ) (Token id:Id.Lit_Chars val:'\n' span_id:271)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'rev-parse --glob=heads/subspace/* --glob=heads/other/*'
            span_id: 278
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:282) (Token id:Id.Lit_Chars val:'\n' span_id:283) 
          (Token
            id: Id.Lit_Chars
            val: 
'\tcompare rev-parse "subspace/one subspace/two other/three" "--glob=heads/subspace/* --glob=heads/other/*"\n'
            span_id: 284
          ) (Token id:Id.Lit_Chars val:'\n' span_id:285)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'rev-parse --glob=heads/someref/* master' span_id:292))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:296) (Token id:Id.Lit_Chars val:'\n' span_id:297) 
          (Token
            id: Id.Lit_Chars
            val: '\tcompare rev-parse "master" "--glob=heads/someref/* master"\n'
            span_id: 298
          ) (Token id:Id.Lit_Chars val:'\n' span_id:299)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'rev-parse --glob=heads/*' span_id:306))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:310) (Token id:Id.Lit_Chars val:'\n' span_id:311) 
          (Token
            id: Id.Lit_Chars
            val: 
'\tcompare rev-parse "master other/three someref subspace-x subspace/one subspace/two" "--glob=heads/*"\n'
            span_id: 312
          ) (Token id:Id.Lit_Chars val:'\n' span_id:313)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'rev-parse --tags=foo' span_id:320))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:324) (Token id:Id.Lit_Chars val:'\n' span_id:325) 
          (Token
            id: Id.Lit_Chars
            val: '\tcompare rev-parse "foo/bar" "--tags=foo"\n'
            span_id: 326
          ) (Token id:Id.Lit_Chars val:'\n' span_id:327)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'rev-parse --remotes=foo' span_id:334))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:338) (Token id:Id.Lit_Chars val:'\n' span_id:339) 
          (Token
            id: Id.Lit_Chars
            val: '\tcompare rev-parse "foo/baz" "--remotes=foo"\n'
            span_id: 340
          ) (Token id:Id.Lit_Chars val:'\n' span_id:341)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'rev-parse --exclude with --branches' span_id:348))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:352) 
          (Token
            id: Id.Lit_Chars
            val: '\tcompare rev-parse "--exclude=*/* --branches" "master someref subspace-x"\n'
            span_id: 353
          )
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'rev-parse --exclude with --all' span_id:360))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:364) 
          (Token
            id: Id.Lit_Chars
            val: '\tcompare rev-parse "--exclude=refs/remotes/* --all" "--branches --tags"\n'
            span_id: 365
          )
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'rev-parse accumulates multiple --exclude' span_id:372))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:376) 
          (Token
            id: Id.Lit_Chars
            val: 
'\tcompare rev-parse "--exclude=refs/remotes/* --exclude=refs/tags/* --all" --branches\n'
            span_id: 377
          )
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'rev-list --glob=refs/heads/subspace/*' span_id:384))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:388) (Token id:Id.Lit_Chars val:'\n' span_id:389) 
          (Token
            id: Id.Lit_Chars
            val: '\tcompare rev-list "subspace/one subspace/two" "--glob=refs/heads/subspace/*"\n'
            span_id: 390
          ) (Token id:Id.Lit_Chars val:'\n' span_id:391)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'rev-list --glob refs/heads/subspace/*' span_id:398))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:402) (Token id:Id.Lit_Chars val:'\n' span_id:403) 
          (Token
            id: Id.Lit_Chars
            val: '\tcompare rev-list "subspace/one subspace/two" "--glob refs/heads/subspace/*"\n'
            span_id: 404
          ) (Token id:Id.Lit_Chars val:'\n' span_id:405)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'rev-list not confused by option-like --glob arg' span_id:412))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:416) (Token id:Id.Lit_Chars val:'\n' span_id:417) 
          (Token
            id: Id.Lit_Chars
            val: '\tcompare rev-list "master" "--glob -0 master"\n'
            span_id: 418
          ) (Token id:Id.Lit_Chars val:'\n' span_id:419)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'rev-list --glob=heads/subspace/*' span_id:426))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:430) (Token id:Id.Lit_Chars val:'\n' span_id:431) 
          (Token
            id: Id.Lit_Chars
            val: '\tcompare rev-list "subspace/one subspace/two" "--glob=heads/subspace/*"\n'
            span_id: 432
          ) (Token id:Id.Lit_Chars val:'\n' span_id:433)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'rev-list --glob=refs/heads/subspace/' span_id:440))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:444) (Token id:Id.Lit_Chars val:'\n' span_id:445) 
          (Token
            id: Id.Lit_Chars
            val: '\tcompare rev-list "subspace/one subspace/two" "--glob=refs/heads/subspace/"\n'
            span_id: 446
          ) (Token id:Id.Lit_Chars val:'\n' span_id:447)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'rev-list --glob=heads/subspace/' span_id:454))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:458) (Token id:Id.Lit_Chars val:'\n' span_id:459) 
          (Token
            id: Id.Lit_Chars
            val: '\tcompare rev-list "subspace/one subspace/two" "--glob=heads/subspace/"\n'
            span_id: 460
          ) (Token id:Id.Lit_Chars val:'\n' span_id:461)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'rev-list --glob=heads/subspace' span_id:468))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:472) (Token id:Id.Lit_Chars val:'\n' span_id:473) 
          (Token
            id: Id.Lit_Chars
            val: '\tcompare rev-list "subspace/one subspace/two" "--glob=heads/subspace"\n'
            span_id: 474
          ) (Token id:Id.Lit_Chars val:'\n' span_id:475)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'rev-list --branches=subspace/*' span_id:482))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:486) (Token id:Id.Lit_Chars val:'\n' span_id:487) 
          (Token
            id: Id.Lit_Chars
            val: '\tcompare rev-list "subspace/one subspace/two" "--branches=subspace/*"\n'
            span_id: 488
          ) (Token id:Id.Lit_Chars val:'\n' span_id:489)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'rev-list --branches=subspace/' span_id:496))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:500) (Token id:Id.Lit_Chars val:'\n' span_id:501) 
          (Token
            id: Id.Lit_Chars
            val: '\tcompare rev-list "subspace/one subspace/two" "--branches=subspace/"\n'
            span_id: 502
          ) (Token id:Id.Lit_Chars val:'\n' span_id:503)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'rev-list --branches=subspace' span_id:510))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:514) (Token id:Id.Lit_Chars val:'\n' span_id:515) 
          (Token
            id: Id.Lit_Chars
            val: '\tcompare rev-list "subspace/one subspace/two" "--branches=subspace"\n'
            span_id: 516
          ) (Token id:Id.Lit_Chars val:'\n' span_id:517)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'rev-list --branches' span_id:524))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:528) (Token id:Id.Lit_Chars val:'\n' span_id:529) 
          (Token
            id: Id.Lit_Chars
            val: 
'\tcompare rev-list "master subspace-x someref other/three subspace/one subspace/two" "--branches"\n'
            span_id: 530
          ) (Token id:Id.Lit_Chars val:'\n' span_id:531)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'rev-list --glob=heads/someref/* master' span_id:538))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:542) (Token id:Id.Lit_Chars val:'\n' span_id:543) 
          (Token
            id: Id.Lit_Chars
            val: '\tcompare rev-list "master" "--glob=heads/someref/* master"\n'
            span_id: 544
          ) (Token id:Id.Lit_Chars val:'\n' span_id:545)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'rev-list --glob=heads/subspace/* --glob=heads/other/*'
            span_id: 552
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:556) (Token id:Id.Lit_Chars val:'\n' span_id:557) 
          (Token
            id: Id.Lit_Chars
            val: 
'\tcompare rev-list "subspace/one subspace/two other/three" "--glob=heads/subspace/* --glob=heads/other/*"\n'
            span_id: 558
          ) (Token id:Id.Lit_Chars val:'\n' span_id:559)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'rev-list --glob=heads/*' span_id:566))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:570) (Token id:Id.Lit_Chars val:'\n' span_id:571) 
          (Token
            id: Id.Lit_Chars
            val: 
'\tcompare rev-list "master other/three someref subspace-x subspace/one subspace/two" "--glob=heads/*"\n'
            span_id: 572
          ) (Token id:Id.Lit_Chars val:'\n' span_id:573)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'rev-list --tags=foo' span_id:580))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:584) (Token id:Id.Lit_Chars val:'\n' span_id:585) 
          (Token
            id: Id.Lit_Chars
            val: '\tcompare rev-list "foo/bar" "--tags=foo"\n'
            span_id: 586
          ) (Token id:Id.Lit_Chars val:'\n' span_id:587)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'rev-list --tags' span_id:594))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:598) (Token id:Id.Lit_Chars val:'\n' span_id:599) 
          (Token id:Id.Lit_Chars val:'\tcompare rev-list "foo/bar" "--tags"\n' span_id:600) (Token id:Id.Lit_Chars val:'\n' span_id:601)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'rev-list --remotes=foo' span_id:608))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:612) (Token id:Id.Lit_Chars val:'\n' span_id:613) 
          (Token
            id: Id.Lit_Chars
            val: '\tcompare rev-list "foo/baz" "--remotes=foo"\n'
            span_id: 614
          ) (Token id:Id.Lit_Chars val:'\n' span_id:615)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'rev-list --exclude with --branches' span_id:622))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:626) 
          (Token
            id: Id.Lit_Chars
            val: '\tcompare rev-list "--exclude=*/* --branches" "master someref subspace-x"\n'
            span_id: 627
          )
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'rev-list --exclude with --all' span_id:634))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:638) 
          (Token
            id: Id.Lit_Chars
            val: '\tcompare rev-list "--exclude=refs/remotes/* --all" "--branches --tags"\n'
            span_id: 639
          )
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'rev-list accumulates multiple --exclude' span_id:646))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:650) 
          (Token
            id: Id.Lit_Chars
            val: 
'\tcompare rev-list "--exclude=refs/remotes/* --exclude=refs/tags/* --all" --branches\n'
            span_id: 651
          )
        )
      }
    )
    (C {(test_expect_failure)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'rev-list may want to succeed with empty output on no input (1)'
            span_id: 678
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:682) 
          (Token id:Id.Lit_Chars val:'\t>expect &&\n' span_id:683) (Token id:Id.Lit_Chars val:'\tgit rev-list --stdin <expect >actual &&\n' span_id:684) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:685)
        )
      }
    )
    (C {(test_expect_failure)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'rev-list may want to succeed with empty output on no input (2)'
            span_id: 692
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:696) 
          (Token id:Id.Lit_Chars val:'\t>expect &&\n' span_id:697) (Token id:Id.Lit_Chars val:'\tgit rev-list --exclude=* --all >actual &&\n' span_id:698) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:699)
        )
      }
    )
    (C {(test_expect_failure)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'rev-list may want to succeed with empty output on no input (3)'
            span_id: 706
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:710) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:711) (Token id:Id.Lit_Chars val:'\t\ttest_create_repo empty &&\n' span_id:712) 
          (Token id:Id.Lit_Chars val:'\t\tcd empty &&\n' span_id:713) (Token id:Id.Lit_Chars val:'\t\t>expect &&\n' span_id:714) 
          (Token id:Id.Lit_Chars val:'\t\tgit rev-list --all >actual &&\n' span_id:715) (Token id:Id.Lit_Chars val:'\t\ttest_cmp expect actual\n' span_id:716) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:717)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'shortlog accepts --glob/--tags/--remotes' span_id:724))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:728) (Token id:Id.Lit_Chars val:'\n' span_id:729) 
          (Token
            id: Id.Lit_Chars
            val: '\tcompare shortlog "subspace/one subspace/two" --branches=subspace &&\n'
            span_id: 730
          ) (Token id:Id.Lit_Chars val:'\tcompare shortlog \\\n' span_id:731) 
          (Token
            id: Id.Lit_Chars
            val: '\t  "master subspace-x someref other/three subspace/one subspace/two" \\\n'
            span_id: 732
          ) (Token id:Id.Lit_Chars val:'\t  --branches &&\n' span_id:733) 
          (Token
            id: Id.Lit_Chars
            val: '\tcompare shortlog master "--glob=heads/someref/* master" &&\n'
            span_id: 734
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\tcompare shortlog "subspace/one subspace/two other/three" \\\n'
            span_id: 735
          ) (Token id:Id.Lit_Chars val:'\t  "--glob=heads/subspace/* --glob=heads/other/*" &&\n' span_id:736) 
          (Token id:Id.Lit_Chars val:'\tcompare shortlog \\\n' span_id:737) 
          (Token
            id: Id.Lit_Chars
            val: '\t  "master other/three someref subspace-x subspace/one subspace/two" \\\n'
            span_id: 738
          ) (Token id:Id.Lit_Chars val:'\t  "--glob=heads/*" &&\n' span_id:739) 
          (Token
            id: Id.Lit_Chars
            val: '\tcompare shortlog foo/bar --tags=foo &&\n'
            span_id: 740
          ) (Token id:Id.Lit_Chars val:'\tcompare shortlog foo/bar --tags &&\n' span_id:741) 
          (Token
            id: Id.Lit_Chars
            val: '\tcompare shortlog foo/baz --remotes=foo\n'
            span_id: 742
          ) (Token id:Id.Lit_Chars val:'\n' span_id:743)
        )
      }
    )
    (C {(test_expect_failure)} 
      {(SQ (Token id:Id.Lit_Chars val:'shortlog accepts --glob as detached option' span_id:750))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:754) (Token id:Id.Lit_Chars val:'\n' span_id:755) 
          (Token id:Id.Lit_Chars val:'\tcompare shortlog \\\n' span_id:756) 
          (Token
            id: Id.Lit_Chars
            val: '\t  "master other/three someref subspace-x subspace/one subspace/two" \\\n'
            span_id: 757
          ) (Token id:Id.Lit_Chars val:'\t  "--glob heads/*"\n' span_id:758) 
          (Token id:Id.Lit_Chars val:'\n' span_id:759)
        )
      }
    )
    (C {(test_expect_failure)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'shortlog --glob is not confused by option-like argument'
            span_id: 766
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:770) (Token id:Id.Lit_Chars val:'\n' span_id:771) 
          (Token
            id: Id.Lit_Chars
            val: '\tcompare shortlog master "--glob -e master"\n'
            span_id: 772
          ) (Token id:Id.Lit_Chars val:'\n' span_id:773)
        )
      }
    )
    (C {(test_done)})
  ]
)