(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 test repository">)} 
      {
        (SQ <"\n"> <"\tsvn_cmd co \"$svnrepo\" s &&\n"> <"\t(\n"> <"\t\tcd s &&\n"> 
          <"\t\tmkdir qqq www xxx &&\n"> <"\t\techo test_qqq > qqq/test_qqq.txt &&\n"> <"\t\techo test_www > www/test_www.txt &&\n"> 
          <"\t\techo test_xxx > xxx/test_xxx.txt &&\n"> <"\t\tsvn_cmd add qqq &&\n"> <"\t\tsvn_cmd add www &&\n"> <"\t\tsvn_cmd add xxx &&\n"> 
          <"\t\tsvn_cmd commit -m \"create some files\" &&\n"> <"\t\tsvn_cmd up &&\n"> <"\t\techo hi >> www/test_www.txt &&\n"> 
          <"\t\tsvn_cmd commit -m \"modify www/test_www.txt\" &&\n"> <"\t\tsvn_cmd up\n"> <"\t)\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"clone an SVN repository with filter to include qqq directory">)} 
      {
        (SQ <"\n"> <"\tgit svn clone --include-paths=\"qqq\" \"$svnrepo\" g &&\n"> 
          <"\techo test_qqq > expect &&\n"> <"\tfor i in g/*/*.txt; do cat $i >> expect2; done &&\n"> <"\ttest_cmp expect expect2\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"init+fetch an SVN repository with included qqq directory">)} 
      {
        (SQ <"\n"> <"\tgit svn init \"$svnrepo\" c &&\n"> 
          <"\t( cd c && git svn fetch --include-paths=\"qqq\" ) &&\n"> <"\trm expect2 &&\n"> <"\techo test_qqq > expect &&\n"> 
          <"\tfor i in c/*/*.txt; do cat $i >> expect2; done &&\n"> <"\ttest_cmp expect expect2\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"verify include-paths config saved by clone">)} 
      {
        (SQ <"\n"> <"\t(\n"> <"\t    cd g &&\n"> 
          <"\t    git config --get svn-remote.svn.include-paths | fgrep \"qqq\"\n"> <"\t)\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"SVN-side change outside of www">)} 
      {
        (SQ <"\n"> <"\t(\n"> <"\t\tcd s &&\n"> <"\t\techo b >> qqq/test_qqq.txt &&\n"> 
          <"\t\tsvn_cmd commit -m \"SVN-side change outside of www\" &&\n"> <"\t\tsvn_cmd up &&\n"> <"\t\tsvn_cmd log -v | fgrep \"SVN-side change outside of www\"\n"> <"\t)\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"update git svn-cloned repo (config include)">)} 
      {
        (SQ <"\n"> <"\t(\n"> <"\t\tcd g &&\n"> <"\t\tgit svn rebase &&\n"> 
          <"\t\tprintf \"test_qqq\\nb\\n\" > expect &&\n"> <"\t\tfor i in */*.txt; do cat $i >> expect2; done &&\n"> <"\t\ttest_cmp expect2 expect &&\n"> 
          <"\t\trm expect expect2\n"> <"\t)\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"update git svn-cloned repo (option include)">)} 
      {
        (SQ <"\n"> <"\t(\n"> <"\t\tcd c &&\n"> <"\t\tgit svn rebase --include-paths=\"qqq\" &&\n"> 
          <"\t\tprintf \"test_qqq\\nb\\n\" > expect &&\n"> <"\t\tfor i in */*.txt; do cat $i >> expect2; done &&\n"> <"\t\ttest_cmp expect2 expect &&\n"> 
          <"\t\trm expect expect2\n"> <"\t)\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"SVN-side change inside of ignored www">)} 
      {
        (SQ <"\n"> <"\t(\n"> <"\t\tcd s &&\n"> <"\t\techo zaq >> www/test_www.txt\n"> 
          <"\t\tsvn_cmd commit -m \"SVN-side change inside of www/test_www.txt\" &&\n"> <"\t\tsvn_cmd up &&\n"> 
          <"\t\tsvn_cmd log -v | fgrep \"SVN-side change inside of www/test_www.txt\"\n"> <"\t)\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"update git svn-cloned repo (config include)">)} 
      {
        (SQ <"\n"> <"\t(\n"> <"\t\tcd g &&\n"> <"\t\tgit svn rebase &&\n"> 
          <"\t\tprintf \"test_qqq\\nb\\n\" > expect &&\n"> <"\t\tfor i in */*.txt; do cat $i >> expect2; done &&\n"> <"\t\ttest_cmp expect2 expect &&\n"> 
          <"\t\trm expect expect2\n"> <"\t)\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"update git svn-cloned repo (option include)">)} 
      {
        (SQ <"\n"> <"\t(\n"> <"\t\tcd c &&\n"> <"\t\tgit svn rebase --include-paths=\"qqq\" &&\n"> 
          <"\t\tprintf \"test_qqq\\nb\\n\" > expect &&\n"> <"\t\tfor i in */*.txt; do cat $i >> expect2; done &&\n"> <"\t\ttest_cmp expect2 expect &&\n"> 
          <"\t\trm expect expect2\n"> <"\t)\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"SVN-side change in and out of included qqq">)} 
      {
        (SQ <"\n"> <"\t(\n"> <"\t\tcd s &&\n"> <"\t\techo cvf >> www/test_www.txt\n"> 
          <"\t\techo ygg >> qqq/test_qqq.txt\n"> <"\t\tsvn_cmd commit -m \"SVN-side change in and out of ignored www\" &&\n"> <"\t\tsvn_cmd up &&\n"> 
          <"\t\tsvn_cmd log -v | fgrep \"SVN-side change in and out of ignored www\"\n"> <"\t)\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"update git svn-cloned repo again (config include)">)} 
      {
        (SQ <"\n"> <"\t(\n"> <"\t\tcd g &&\n"> <"\t\tgit svn rebase &&\n"> 
          <"\t\tprintf \"test_qqq\\nb\\nygg\\n\" > expect &&\n"> <"\t\tfor i in */*.txt; do cat $i >> expect2; done &&\n"> <"\t\ttest_cmp expect2 expect &&\n"> 
          <"\t\trm expect expect2\n"> <"\t)\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"update git svn-cloned repo again (option include)">)} 
      {
        (SQ <"\n"> <"\t(\n"> <"\t\tcd c &&\n"> <"\t\tgit svn rebase --include-paths=\"qqq\" &&\n"> 
          <"\t\tprintf \"test_qqq\\nb\\nygg\\n\" > expect &&\n"> <"\t\tfor i in */*.txt; do cat $i >> expect2; done &&\n"> <"\t\ttest_cmp expect2 expect &&\n"> 
          <"\t\trm expect expect2\n"> <"\t)\n">
        )
      }
    )
    (C {(test_done)})
  ]
)