(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:'pull options' span_id:6))}
          spids: [4]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:setup span_id:18))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:22) 
          (Token id:Id.Lit_Chars val:'\tmkdir parent &&\n' span_id:23) (Token id:Id.Lit_Chars val:'\t(cd parent && git init &&\n' span_id:24) 
          (Token id:Id.Lit_Chars val:'\t echo one >file && git add file &&\n' span_id:25) (Token id:Id.Lit_Chars val:'\t git commit -m one)\n' span_id:26)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git pull -q' span_id:33))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:37) 
          (Token id:Id.Lit_Chars val:'\tmkdir clonedq &&\n' span_id:38) (Token id:Id.Lit_Chars val:'\t(cd clonedq && git init &&\n' span_id:39) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit pull -q "../parent" >out 2>err &&\n'
            span_id: 40
          ) (Token id:Id.Lit_Chars val:'\ttest_must_be_empty err &&\n' span_id:41) 
          (Token id:Id.Lit_Chars val:'\ttest_must_be_empty out)\n' span_id:42)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git pull -q --rebase' span_id:49))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:53) 
          (Token id:Id.Lit_Chars val:'\tmkdir clonedqrb &&\n' span_id:54) (Token id:Id.Lit_Chars val:'\t(cd clonedqrb && git init &&\n' span_id:55) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit pull -q --rebase "../parent" >out 2>err &&\n'
            span_id: 56
          ) (Token id:Id.Lit_Chars val:'\ttest_must_be_empty err &&\n' span_id:57) 
          (Token id:Id.Lit_Chars val:'\ttest_must_be_empty out &&\n' span_id:58) (Token id:Id.Lit_Chars val:'\tgit pull -q --rebase "../parent" >out 2>err &&\n' span_id:59) 
          (Token id:Id.Lit_Chars val:'\ttest_must_be_empty err &&\n' span_id:60) (Token id:Id.Lit_Chars val:'\ttest_must_be_empty out)\n' span_id:61)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git pull' span_id:68))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:72) 
          (Token id:Id.Lit_Chars val:'\tmkdir cloned &&\n' span_id:73) (Token id:Id.Lit_Chars val:'\t(cd cloned && git init &&\n' span_id:74) 
          (Token id:Id.Lit_Chars val:'\tgit pull "../parent" >out 2>err &&\n' span_id:75) (Token id:Id.Lit_Chars val:'\ttest -s err &&\n' span_id:76) 
          (Token id:Id.Lit_Chars val:'\ttest_must_be_empty out)\n' span_id:77)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git pull --rebase' span_id:84))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:88) 
          (Token id:Id.Lit_Chars val:'\tmkdir clonedrb &&\n' span_id:89) (Token id:Id.Lit_Chars val:'\t(cd clonedrb && git init &&\n' span_id:90) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit pull --rebase "../parent" >out 2>err &&\n'
            span_id: 91
          ) (Token id:Id.Lit_Chars val:'\ttest -s err &&\n' span_id:92) 
          (Token id:Id.Lit_Chars val:'\ttest_must_be_empty out)\n' span_id:93)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git pull -v' span_id:100))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:104) 
          (Token id:Id.Lit_Chars val:'\tmkdir clonedv &&\n' span_id:105) (Token id:Id.Lit_Chars val:'\t(cd clonedv && git init &&\n' span_id:106) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit pull -v "../parent" >out 2>err &&\n'
            span_id: 107
          ) (Token id:Id.Lit_Chars val:'\ttest -s err &&\n' span_id:108) 
          (Token id:Id.Lit_Chars val:'\ttest_must_be_empty out)\n' span_id:109)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git pull -v --rebase' span_id:116))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:120) 
          (Token id:Id.Lit_Chars val:'\tmkdir clonedvrb &&\n' span_id:121) (Token id:Id.Lit_Chars val:'\t(cd clonedvrb && git init &&\n' span_id:122) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit pull -v --rebase "../parent" >out 2>err &&\n'
            span_id: 123
          ) (Token id:Id.Lit_Chars val:'\ttest -s err &&\n' span_id:124) 
          (Token id:Id.Lit_Chars val:'\ttest_must_be_empty out)\n' span_id:125)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git pull -v -q' span_id:132))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:136) 
          (Token id:Id.Lit_Chars val:'\tmkdir clonedvq &&\n' span_id:137) (Token id:Id.Lit_Chars val:'\t(cd clonedvq && git init &&\n' span_id:138) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit pull -v -q "../parent" >out 2>err &&\n'
            span_id: 139
          ) (Token id:Id.Lit_Chars val:'\ttest_must_be_empty out &&\n' span_id:140) 
          (Token id:Id.Lit_Chars val:'\ttest_must_be_empty err)\n' span_id:141)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git pull -q -v' span_id:148))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:152) 
          (Token id:Id.Lit_Chars val:'\tmkdir clonedqv &&\n' span_id:153) (Token id:Id.Lit_Chars val:'\t(cd clonedqv && git init &&\n' span_id:154) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit pull -q -v "../parent" >out 2>err &&\n'
            span_id: 155
          ) (Token id:Id.Lit_Chars val:'\ttest_must_be_empty out &&\n' span_id:156) 
          (Token id:Id.Lit_Chars val:'\ttest -s err)\n' span_id:157)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git pull --force' span_id:164))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:168) 
          (Token id:Id.Lit_Chars val:'\tmkdir clonedoldstyle &&\n' span_id:169) (Token id:Id.Lit_Chars val:'\t(cd clonedoldstyle && git init &&\n' span_id:170) 
          (Token id:Id.Lit_Chars val:'\tcat >>.git/config <<-\\EOF &&\n' span_id:171) (Token id:Id.Lit_Chars val:'\t[remote "one"]\n' span_id:172) 
          (Token id:Id.Lit_Chars val:'\t\turl = ../parent\n' span_id:173) (Token id:Id.Lit_Chars val:'\t\tfetch = refs/heads/master:refs/heads/mirror\n' span_id:174) 
          (Token id:Id.Lit_Chars val:'\t[remote "two"]\n' span_id:175) (Token id:Id.Lit_Chars val:'\t\turl = ../parent\n' span_id:176) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tfetch = refs/heads/master:refs/heads/origin\n'
            span_id: 177
          ) (Token id:Id.Lit_Chars val:'\t[branch "master"]\n' span_id:178) 
          (Token id:Id.Lit_Chars val:'\t\tremote = two\n' span_id:179) (Token id:Id.Lit_Chars val:'\t\tmerge = refs/heads/master\n' span_id:180) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:181) (Token id:Id.Lit_Chars val:'\tgit pull two &&\n' span_id:182) 
          (Token id:Id.Lit_Chars val:'\ttest_commit A &&\n' span_id:183) (Token id:Id.Lit_Chars val:'\tgit branch -f origin &&\n' span_id:184) 
          (Token id:Id.Lit_Chars val:'\tgit pull --all --force\n' span_id:185) (Token id:Id.Lit_Chars val:'\t)\n' span_id:186)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git pull --all' span_id:193))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:197) 
          (Token id:Id.Lit_Chars val:'\tmkdir clonedmulti &&\n' span_id:198) (Token id:Id.Lit_Chars val:'\t(cd clonedmulti && git init &&\n' span_id:199) 
          (Token id:Id.Lit_Chars val:'\tcat >>.git/config <<-\\EOF &&\n' span_id:200) (Token id:Id.Lit_Chars val:'\t[remote "one"]\n' span_id:201) 
          (Token id:Id.Lit_Chars val:'\t\turl = ../parent\n' span_id:202) (Token id:Id.Lit_Chars val:'\t\tfetch = refs/heads/*:refs/remotes/one/*\n' span_id:203) 
          (Token id:Id.Lit_Chars val:'\t[remote "two"]\n' span_id:204) (Token id:Id.Lit_Chars val:'\t\turl = ../parent\n' span_id:205) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tfetch = refs/heads/*:refs/remotes/two/*\n'
            span_id: 206
          ) (Token id:Id.Lit_Chars val:'\t[branch "master"]\n' span_id:207) 
          (Token id:Id.Lit_Chars val:'\t\tremote = one\n' span_id:208) (Token id:Id.Lit_Chars val:'\t\tmerge = refs/heads/master\n' span_id:209) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:210) (Token id:Id.Lit_Chars val:'\tgit pull --all\n' span_id:211) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:212)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git pull --dry-run' span_id:219))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:223) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_when_finished "rm -rf clonedry" &&\n'
            span_id: 224
          ) (Token id:Id.Lit_Chars val:'\tgit init clonedry &&\n' span_id:225) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:226) (Token id:Id.Lit_Chars val:'\t\tcd clonedry &&\n' span_id:227) 
          (Token id:Id.Lit_Chars val:'\t\tgit pull --dry-run ../parent &&\n' span_id:228) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_missing .git/FETCH_HEAD &&\n' span_id:229) 
          (Token
            id: Id.Lit_Chars
            val: '\t\ttest_path_is_missing .git/refs/heads/master &&\n'
            span_id: 230
          ) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_missing .git/index &&\n' span_id:231) 
          (Token id:Id.Lit_Chars val:'\t\ttest_path_is_missing file\n' span_id:232) (Token id:Id.Lit_Chars val:'\t)\n' span_id:233)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git pull --all --dry-run' span_id:240))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:244) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_when_finished "rm -rf cloneddry" &&\n'
            span_id: 245
          ) (Token id:Id.Lit_Chars val:'\tgit init clonedry &&\n' span_id:246) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:247) (Token id:Id.Lit_Chars val:'\t\tcd clonedry &&\n' span_id:248) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit remote add origin ../parent &&\n'
            span_id: 249
          ) (Token id:Id.Lit_Chars val:'\t\tgit pull --all --dry-run &&\n' span_id:250) 
          (Token
            id: Id.Lit_Chars
            val: '\t\ttest_path_is_missing .git/FETCH_HEAD &&\n'
            span_id: 251
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\t\ttest_path_is_missing .git/refs/remotes/origin/master &&\n'
            span_id: 252
          ) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_missing .git/index &&\n' span_id:253) 
          (Token id:Id.Lit_Chars val:'\t\ttest_path_is_missing file\n' span_id:254) (Token id:Id.Lit_Chars val:'\t)\n' span_id:255)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'git pull --allow-unrelated-histories' span_id:262))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:266) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_when_finished "rm -fr src dst" &&\n'
            span_id: 267
          ) (Token id:Id.Lit_Chars val:'\tgit init src &&\n' span_id:268) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:269) (Token id:Id.Lit_Chars val:'\t\tcd src &&\n' span_id:270) 
          (Token id:Id.Lit_Chars val:'\t\ttest_commit one &&\n' span_id:271) (Token id:Id.Lit_Chars val:'\t\ttest_commit two\n' span_id:272) 
          (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:273) (Token id:Id.Lit_Chars val:'\tgit clone src dst &&\n' span_id:274) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:275) (Token id:Id.Lit_Chars val:'\t\tcd src &&\n' span_id:276) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit checkout --orphan side HEAD^ &&\n'
            span_id: 277
          ) (Token id:Id.Lit_Chars val:'\t\ttest_commit three\n' span_id:278) 
          (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:279) (Token id:Id.Lit_Chars val:'\t(\n' span_id:280) 
          (Token id:Id.Lit_Chars val:'\t\tcd dst &&\n' span_id:281) (Token id:Id.Lit_Chars val:'\t\ttest_must_fail git pull ../src side &&\n' span_id:282) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit pull --allow-unrelated-histories ../src side\n'
            span_id: 283
          ) (Token id:Id.Lit_Chars val:'\t)\n' span_id:284)
        )
      }
    )
    (C {(test_done)})
  ]
)