(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:'git checkout --orphan\n' span_id:15) 
                (Token id:Id.Lit_Chars val:'\n' span_id:16) (Token id:Id.Lit_Chars val:'Main Tests for --orphan functionality.' span_id:17)
              )
            }
          spids: [13]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TEST_FILE)
          op: assign_op.Equal
          rhs: {(foo)}
          spids: [26]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:Setup span_id:33))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:37) 
          (Token id:Id.Lit_Chars val:'\techo "Initial" >"$TEST_FILE" &&\n' span_id:38) (Token id:Id.Lit_Chars val:'\tgit add "$TEST_FILE" &&\n' span_id:39) 
          (Token id:Id.Lit_Chars val:'\tgit commit -m "First Commit" &&\n' span_id:40) (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:41) 
          (Token id:Id.Lit_Chars val:'\techo "State 1" >>"$TEST_FILE" &&\n' span_id:42) (Token id:Id.Lit_Chars val:'\tgit add "$TEST_FILE" &&\n' span_id:43) 
          (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:44) (Token id:Id.Lit_Chars val:'\tgit commit -m "Second Commit"\n' span_id:45)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'--orphan creates a new orphan branch from HEAD' span_id:52))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:56) 
          (Token id:Id.Lit_Chars val:'\tgit checkout --orphan alpha &&\n' span_id:57) (Token id:Id.Lit_Chars val:'\ttest_must_fail git rev-parse --verify HEAD &&\n' span_id:58) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest "refs/heads/alpha" = "$(git symbolic-ref HEAD)" &&\n'
            span_id: 59
          ) (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:60) 
          (Token id:Id.Lit_Chars val:'\tgit commit -m "Third Commit" &&\n' span_id:61) (Token id:Id.Lit_Chars val:'\ttest_must_fail git rev-parse --verify HEAD^ &&\n' span_id:62) 
          (Token id:Id.Lit_Chars val:'\tgit diff-tree --quiet master alpha\n' span_id:63)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: '--orphan creates a new orphan branch from <start_point>'
            span_id: 70
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:74) 
          (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:75) (Token id:Id.Lit_Chars val:'\tgit checkout --orphan beta master^ &&\n' span_id:76) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git rev-parse --verify HEAD &&\n'
            span_id: 77
          ) (Token id:Id.Lit_Chars val:'\ttest "refs/heads/beta" = "$(git symbolic-ref HEAD)" &&\n' span_id:78) 
          (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:79) (Token id:Id.Lit_Chars val:'\tgit commit -m "Fourth Commit" &&\n' span_id:80) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git rev-parse --verify HEAD^ &&\n'
            span_id: 81
          ) (Token id:Id.Lit_Chars val:'\tgit diff-tree --quiet master^ beta\n' span_id:82)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'--orphan must be rejected with -b' span_id:89))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:93) 
          (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:94) (Token id:Id.Lit_Chars val:'\ttest_must_fail git checkout --orphan new -b newer &&\n' span_id:95) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest refs/heads/master = "$(git symbolic-ref HEAD)"\n'
            span_id: 96
          )
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'--orphan must be rejected with -t' span_id:103))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:107) 
          (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:108) (Token id:Id.Lit_Chars val:'\ttest_must_fail git checkout --orphan new -t master &&\n' span_id:109) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest refs/heads/master = "$(git symbolic-ref HEAD)"\n'
            span_id: 110
          )
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'--orphan ignores branch.autosetupmerge' span_id:117))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:121) 
          (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:122) (Token id:Id.Lit_Chars val:'\tgit config branch.autosetupmerge always &&\n' span_id:123) 
          (Token id:Id.Lit_Chars val:'\tgit checkout --orphan gamma &&\n' span_id:124) (Token id:Id.Lit_Chars val:'\ttest -z "$(git config branch.gamma.merge)" &&\n' span_id:125) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest refs/heads/gamma = "$(git symbolic-ref HEAD)" &&\n'
            span_id: 126
          ) (Token id:Id.Lit_Chars val:'\ttest_must_fail git rev-parse --verify HEAD^\n' span_id:127)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'--orphan makes reflog by default' span_id:134))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:138) 
          (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:139) (Token id:Id.Lit_Chars val:'\tgit config --unset core.logAllRefUpdates &&\n' span_id:140) 
          (Token id:Id.Lit_Chars val:'\tgit checkout --orphan delta &&\n' span_id:141) (Token id:Id.Lit_Chars val:'\ttest_must_fail git rev-parse --verify delta@{0} &&\n' span_id:142) 
          (Token id:Id.Lit_Chars val:'\tgit commit -m Delta &&\n' span_id:143) (Token id:Id.Lit_Chars val:'\tgit rev-parse --verify delta@{0}\n' span_id:144)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: '--orphan does not make reflog when core.logAllRefUpdates = false'
            span_id: 151
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:155) 
          (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:156) (Token id:Id.Lit_Chars val:'\tgit config core.logAllRefUpdates false &&\n' span_id:157) 
          (Token id:Id.Lit_Chars val:'\tgit checkout --orphan epsilon &&\n' span_id:158) (Token id:Id.Lit_Chars val:'\ttest_must_fail git rev-parse --verify epsilon@{0} &&\n' span_id:159) 
          (Token id:Id.Lit_Chars val:'\tgit commit -m Epsilon &&\n' span_id:160) (Token id:Id.Lit_Chars val:'\ttest_must_fail git rev-parse --verify epsilon@{0}\n' span_id:161)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: '--orphan with -l makes reflog when core.logAllRefUpdates = false'
            span_id: 168
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:172) 
          (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:173) (Token id:Id.Lit_Chars val:'\tgit checkout -l --orphan zeta &&\n' span_id:174) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git rev-parse --verify zeta@{0} &&\n'
            span_id: 175
          ) (Token id:Id.Lit_Chars val:'\tgit commit -m Zeta &&\n' span_id:176) 
          (Token id:Id.Lit_Chars val:'\tgit rev-parse --verify zeta@{0}\n' span_id:177)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 
'giving up --orphan not committed when -l and core.logAllRefUpdates = false deletes reflog'
            span_id: 184
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:188) 
          (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:189) (Token id:Id.Lit_Chars val:'\tgit checkout -l --orphan eta &&\n' span_id:190) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git rev-parse --verify eta@{0} &&\n'
            span_id: 191
          ) (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:192) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git rev-parse --verify eta@{0}\n'
            span_id: 193
          )
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'--orphan is rejected with an existing name' span_id:200))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:204) 
          (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:205) (Token id:Id.Lit_Chars val:'\ttest_must_fail git checkout --orphan master &&\n' span_id:206) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest refs/heads/master = "$(git symbolic-ref HEAD)"\n'
            span_id: 207
          )
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'--orphan refuses to switch if a merge is needed' span_id:214))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:218) 
          (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:219) (Token id:Id.Lit_Chars val:'\tgit reset --hard &&\n' span_id:220) 
          (Token id:Id.Lit_Chars val:'\techo local >>"$TEST_FILE" &&\n' span_id:221) (Token id:Id.Lit_Chars val:'\tcat "$TEST_FILE" >"$TEST_FILE.saved" &&\n' span_id:222) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git checkout --orphan new master^ &&\n'
            span_id: 223
          ) (Token id:Id.Lit_Chars val:'\ttest refs/heads/master = "$(git symbolic-ref HEAD)" &&\n' span_id:224) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_cmp "$TEST_FILE" "$TEST_FILE.saved" &&\n'
            span_id: 225
          ) (Token id:Id.Lit_Chars val:'\tgit diff-index --quiet --cached HEAD &&\n' span_id:226) 
          (Token id:Id.Lit_Chars val:'\tgit reset --hard\n' span_id:227)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'cannot --detach on an unborn branch' span_id:234))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:238) 
          (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:239) (Token id:Id.Lit_Chars val:'\tgit checkout --orphan new &&\n' span_id:240) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git checkout --detach\n'
            span_id: 241
          )
        )
      }
    )
    (C {(test_done)})
  ]
)