(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <'git cvsimport basic tests'>)}
          spids: [4]
        )
      ]
      spids: [4]
    )
    (C {(.)} {(./lib-cvs.sh)})
    (C {(test_expect_success)} {(PERL)} {(SQ <'setup cvsroot environment'>)} 
      {(SQ <'\n'> <'\tCVSROOT=$(pwd)/cvsroot &&\n'> <'\texport CVSROOT\n'>)}
    )
    (C {(test_expect_success)} {(PERL)} {(SQ <'setup cvsroot'>)} {(SQ <'$CVS init'>)})
    (C {(test_expect_success)} {(PERL)} {(SQ <'setup a cvs module'>)} 
      {
        (SQ <'\n'> <'\n'> <'\tmkdir "$CVSROOT/module" &&\n'> <'\t$CVS co -d module-cvs module &&\n'> 
          <'\t(cd module-cvs &&\n'> <'\tcat <<EOF >o_fortuna &&\n'> <'O Fortuna\n'> <'velut luna\n'> <'statu variabilis,\n'> <'\n'> 
          <'semper crescis\n'> <'aut decrescis;\n'> <'vita detestabilis\n'> <'\n'> <'nunc obdurat\n'> <'et tunc curat\n'> 
          <'ludo mentis aciem,\n'> <'\n'> <'egestatem,\n'> <'potestatem\n'> <'dissolvit ut glaciem.\n'> <'EOF\n'> 
          <'\t$CVS add o_fortuna &&\n'> <'\tcat <<EOF >message &&\n'> <'add "O Fortuna" lyrics\n'> <'\n'> 
          <'These public domain lyrics make an excellent sample text.\n'> <'EOF\n'> <'\t$CVS commit -F message\n'> <'\t)\n'>
        )
      }
    )
    (C {(test_expect_success)} {(PERL)} {(SQ <'import a trivial module'>)} 
      {
        (SQ <'\n'> <'\n'> <'\tgit cvsimport -a -R -z 0 -C module-git module &&\n'> 
          <'\ttest_cmp module-cvs/o_fortuna module-git/o_fortuna\n'> <'\n'>
        )
      }
    )
    (C {(test_expect_success)} {(PERL)} {(SQ <'pack refs'>)} {(SQ <'(cd module-git && git gc)'>)})
    (C {(test_expect_success)} {(PERL)} {(SQ <'initial import has correct .git/cvs-revisions'>)} 
      {
        (SQ <'\n'> <'\n'> <'\t(cd module-git &&\n'> 
          <'\t git log --format="o_fortuna 1.1 %H" -1) > expected &&\n'> <'\ttest_cmp expected module-git/.git/cvs-revisions\n'>
        )
      }
    )
    (C {(test_expect_success)} {(PERL)} {(SQ <'update cvs module'>)} 
      {
        (SQ <'\n'> <'\t(cd module-cvs &&\n'> <'\tcat <<EOF >o_fortuna &&\n'> <'O Fortune,\n'> 
          <'like the moon\n'> <'you are changeable,\n'> <'\n'> <'ever waxing\n'> <'and waning;\n'> <'hateful life\n'> <'\n'> 
          <'first oppresses\n'> <'and then soothes\n'> <'as fancy takes it;\n'> <'\n'> <'poverty\n'> <'and power\n'> 
          <'it melts them like ice.\n'> <'EOF\n'> <'\tcat <<EOF >message &&\n'> <'translate to English\n'> <'\n'> <'My Latin is terrible.\n'> 
          <'EOF\n'> <'\t$CVS commit -F message\n'> <'\t)\n'>
        )
      }
    )
    (C {(test_expect_success)} {(PERL)} {(SQ <'update git module'>)} 
      {
        (SQ <'\n'> <'\n'> <'\t(cd module-git &&\n'> <'\tgit config cvsimport.trackRevisions true &&\n'> 
          <'\tgit cvsimport -a -z 0 module &&\n'> <'\tgit merge origin\n'> <'\t) &&\n'> <'\ttest_cmp module-cvs/o_fortuna module-git/o_fortuna\n'> <'\n'>
        )
      }
    )
    (C {(test_expect_success)} {(PERL)} {(SQ <'update has correct .git/cvs-revisions'>)} 
      {
        (SQ <'\n'> <'\n'> <'\t(cd module-git &&\n'> 
          <'\t git log --format="o_fortuna 1.1 %H" -1 HEAD^ &&\n'> <'\t git log --format="o_fortuna 1.2 %H" -1 HEAD) > expected &&\n'> 
          <'\ttest_cmp expected module-git/.git/cvs-revisions\n'>
        )
      }
    )
    (C {(test_expect_success)} {(PERL)} {(SQ <'update cvs module'>)} 
      {
        (SQ <'\n'> <'\n'> <'\t(cd module-cvs &&\n'> <'\t\techo 1 >tick &&\n'> <'\t\t$CVS add tick &&\n'> 
          <'\t\t$CVS commit -m 1\n'> <'\t)\n'>
        )
      }
    )
    (C {(test_expect_success)} {(PERL)} {(SQ <'cvsimport.module config works'>)} 
      {
        (SQ <'\n'> <'\n'> <'\t(cd module-git &&\n'> <'\t\tgit config cvsimport.module module &&\n'> 
          <'\t\tgit config cvsimport.trackRevisions true &&\n'> <'\t\tgit cvsimport -a -z0 &&\n'> <'\t\tgit merge origin\n'> <'\t) &&\n'> 
          <'\ttest_cmp module-cvs/tick module-git/tick\n'> <'\n'>
        )
      }
    )
    (C {(test_expect_success)} {(PERL)} {(SQ <'second update has correct .git/cvs-revisions'>)} 
      {
        (SQ <'\n'> <'\n'> <'\t(cd module-git &&\n'> 
          <'\t git log --format="o_fortuna 1.1 %H" -1 HEAD^^ &&\n'> <'\t git log --format="o_fortuna 1.2 %H" -1 HEAD^\n'> 
          <'\t git log --format="tick 1.1 %H" -1 HEAD) > expected &&\n'> <'\ttest_cmp expected module-git/.git/cvs-revisions\n'>
        )
      }
    )
    (C {(test_expect_success)} {(PERL)} {(SQ <'import from a CVS working tree'>)} 
      {
        (SQ <'\n'> <'\n'> <'\t$CVS co -d import-from-wt module &&\n'> <'\t(cd import-from-wt &&\n'> 
          <'\t\tgit config cvsimport.trackRevisions false &&\n'> <'\t\tgit cvsimport -a -z0 &&\n'> <'\t\techo 1 >expect &&\n'> 
          <'\t\tgit log -1 --pretty=format:%s%n >actual &&\n'> <'\t\ttest_cmp actual expect\n'> <'\t)\n'> <'\n'>
        )
      }
    )
    (C {(test_expect_success)} {(PERL)} {(SQ <'no .git/cvs-revisions created by default'>)} 
      {(SQ <'\n'> <'\n'> <'\t! test -e import-from-wt/.git/cvs-revisions\n'> <'\n'>)}
    )
    (C {(test_expect_success)} {(PERL)} {(SQ <'test entire HEAD'>)} {(SQ <'test_cmp_branch_tree master'>)})
    (C {(test_done)})
  ]
)