(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)})
  ]
)