(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <'git svn property tests'>)}
          spids: [13]
        )
      ]
      spids: [13]
    )
    (C {(.)} {(./lib-git-svn.sh)})
    (C {(test_expect_success)} {(SQ <'setup repo with a git repo inside it'>)} 
      {
        (SQ <'\n'> <'\tsvn_cmd co "$svnrepo" s &&\n'> <'\t(\n'> <'\t\tcd s &&\n'> <'\t\tgit init &&\n'> 
          <'\t\ttest -f .git/HEAD &&\n'> <'\t\t> .git/a &&\n'> <'\t\techo a > a &&\n'> <'\t\tsvn_cmd add .git a &&\n'> 
          <'\t\tsvn_cmd commit -m "create a nested git repo" &&\n'> <'\t\tsvn_cmd up &&\n'> <'\t\techo hi >> .git/a &&\n'> <'\t\tsvn_cmd commit -m "modify .git/a" &&\n'> 
          <'\t\tsvn_cmd up\n'> <'\t)\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'clone an SVN repo containing a git repo'>)} 
      {
        (SQ <'\n'> <'\tgit svn clone "$svnrepo" g &&\n'> <'\techo a > expect &&\n'> 
          <'\ttest_cmp expect g/a\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'SVN-side change outside of .git'>)} 
      {
        (SQ <'\n'> <'\t(\n'> <'\t\tcd s &&\n'> <'\t\techo b >> a &&\n'> 
          <'\t\tsvn_cmd commit -m "SVN-side change outside of .git" &&\n'> <'\t\tsvn_cmd up &&\n'> <'\t\tsvn_cmd log -v | fgrep "SVN-side change outside of .git"\n'> <'\t)\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'update git svn-cloned repo'>)} 
      {
        (SQ <'\n'> <'\t(\n'> <'\t\tcd g &&\n'> <'\t\tgit svn rebase &&\n'> <'\t\techo a > expect &&\n'> 
          <'\t\techo b >> expect &&\n'> <'\t\ttest_cmp a expect &&\n'> <'\t\trm expect\n'> <'\t)\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'SVN-side change inside of .git'>)} 
      {
        (SQ <'\n'> <'\t(\n'> <'\t\tcd s &&\n'> <'\t\tgit add a &&\n'> 
          <'\t\tgit commit -m "add a inside an SVN repo" &&\n'> <'\t\tgit log &&\n'> <'\t\tsvn_cmd add --force .git &&\n'> 
          <'\t\tsvn_cmd commit -m "SVN-side change inside of .git" &&\n'> <'\t\tsvn_cmd up &&\n'> <'\t\tsvn_cmd log -v | fgrep "SVN-side change inside of .git"\n'> <'\t)\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'update git svn-cloned repo'>)} 
      {
        (SQ <'\n'> <'\t(\n'> <'\t\tcd g &&\n'> <'\t\tgit svn rebase &&\n'> <'\t\techo a > expect &&\n'> 
          <'\t\techo b >> expect &&\n'> <'\t\ttest_cmp a expect &&\n'> <'\t\trm expect\n'> <'\t)\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'SVN-side change in and out of .git'>)} 
      {
        (SQ <'\n'> <'\t(\n'> <'\t\tcd s &&\n'> <'\t\techo c >> a &&\n'> <'\t\tgit add a &&\n'> 
          <'\t\tgit commit -m "add a inside an SVN repo" &&\n'> <'\t\tsvn_cmd commit -m "SVN-side change in and out of .git" &&\n'> <'\t\tsvn_cmd up &&\n'> 
          <'\t\tsvn_cmd log -v | fgrep "SVN-side change in and out of .git"\n'> <'\t)\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'update git svn-cloned repo again'>)} 
      {
        (SQ <'\n'> <'\t(\n'> <'\t\tcd g &&\n'> <'\t\tgit svn rebase &&\n'> <'\t\techo a > expect &&\n'> 
          <'\t\techo b >> expect &&\n'> <'\t\techo c >> expect &&\n'> <'\t\ttest_cmp a expect &&\n'> <'\t\trm expect\n'> <'\t)\n'>
        )
      }
    )
    (C {(test_done)})
  ]
)