(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:test_description)
          op: assign_op.Equal
          rhs: {(SQ <'checkout from unborn branch'>)}
          spids: [4]
        )
      ]
    )
    (C {<.>} {<'./test-lib.sh'>})
    (C {<test_expect_success>} {(SQ <setup>)} 
      {
        (SQ <'\n'> <'\tmkdir parent &&\n'> <'\t(cd parent &&\n'> <'\t git init &&\n'> 
          <'\t echo content >file &&\n'> <'\t git add file &&\n'> <'\t git commit -m base\n'> <'\t) &&\n'> <'\tgit fetch parent master:origin\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'checkout from unborn preserves untracked files'>)} 
      {
        (SQ <'\n'> <'\techo precious >expect &&\n'> <'\techo precious >file &&\n'> 
          <'\ttest_must_fail git checkout -b new origin &&\n'> <'\ttest_cmp expect file\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'checkout from unborn preserves index contents'>)} 
      {
        (SQ <'\n'> <'\techo precious >expect &&\n'> <'\techo precious >file &&\n'> 
          <'\tgit add file &&\n'> <'\ttest_must_fail git checkout -b new origin &&\n'> <'\ttest_cmp expect file &&\n'> 
          <'\tgit show :file >file &&\n'> <'\ttest_cmp expect file\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'checkout from unborn merges identical index contents'>)} 
      {
        (SQ <'\n'> <'\techo content >file &&\n'> <'\tgit add file &&\n'> 
          <'\tgit checkout -b new origin\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'checking out another branch from unborn state'>)} 
      {
        (SQ <'\n'> <'\tgit checkout --orphan newroot &&\n'> <'\tgit checkout -b anothername &&\n'> 
          <'\ttest_must_fail git show-ref --verify refs/heads/newroot &&\n'> <'\tgit symbolic-ref HEAD >actual &&\n'> <'\techo refs/heads/anothername >expect &&\n'> 
          <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'checking out in a newly created repo'>)} 
      {
        (SQ <'\n'> <'\ttest_create_repo empty &&\n'> <'\t(\n'> <'\t\tcd empty &&\n'> 
          <'\t\tgit symbolic-ref HEAD >expect &&\n'> <'\t\ttest_must_fail git checkout &&\n'> <'\t\tgit symbolic-ref HEAD >actual &&\n'> 
          <'\t\ttest_cmp expect actual\n'> <'\t)\n'>
        )
      }
    )
    (C {<test_done>})
  ]
)