(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <'git checkout to switch between branches with symlink<->dir'>)}
          spids: [10]
        )
      ]
      spids: [10]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} {(setup)} 
      {
        (SQ <'\n'> <'\n'> <'\tmkdir frotz &&\n'> <'\techo hello >frotz/filfre &&\n'> 
          <'\tgit add frotz/filfre &&\n'> <'\ttest_tick &&\n'> <'\tgit commit -m "master has file frotz/filfre" &&\n'> <'\n'> 
          <'\tgit branch side &&\n'> <'\n'> <'\techo goodbye >nitfol &&\n'> <'\tgit add nitfol &&\n'> <'\ttest_tick &&\n'> 
          <'\tgit commit -m "master adds file nitfol" &&\n'> <'\n'> <'\tgit checkout side &&\n'> <'\n'> <'\tgit rm --cached frotz/filfre &&\n'> 
          <'\tmv frotz xyzzy &&\n'> <'\ttest_ln_s_add xyzzy frotz &&\n'> <'\tgit add xyzzy/filfre &&\n'> <'\ttest_tick &&\n'> 
          <'\tgit commit -m "side moves frotz/ to xyzzy/ and adds frotz->xyzzy/"\n'> <'\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'switch from symlink to dir'>)} 
      {(SQ <'\n'> <'\n'> <'\tgit checkout master\n'> <'\n'>)}
    )
    (C {(test_expect_success)} {(SQ <'Remove temporary directories & switch to master'>)} 
      {(SQ <'\n'> <'\trm -fr frotz xyzzy nitfol &&\n'> <'\tgit checkout -f master\n'>)}
    )
    (C {(test_expect_success)} {(SQ <'switch from dir to symlink'>)} 
      {(SQ <'\n'> <'\n'> <'\tgit checkout side\n'> <'\n'>)}
    )
    (C {(test_done)})
  ]
)