(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:test_description)
          op: assign_op.Equal
          rhs: {(SQ (Token id:Id.Lit_Chars val:'git svn property tests' span_id:15))}
          spids: [13]
        )
      ]
    )
    (C {(.)} {(./lib-git-svn.sh)})
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'setup repo with a git repo inside it' span_id:26))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:30) 
          (Token id:Id.Lit_Chars val:'\tsvn_cmd co "$svnrepo" s &&\n' span_id:31) (Token id:Id.Lit_Chars val:'\t(\n' span_id:32) (Token id:Id.Lit_Chars val:'\t\tcd s &&\n' span_id:33) 
          (Token id:Id.Lit_Chars val:'\t\tgit init &&\n' span_id:34) (Token id:Id.Lit_Chars val:'\t\ttest -f .git/HEAD &&\n' span_id:35) 
          (Token id:Id.Lit_Chars val:'\t\t> .git/a &&\n' span_id:36) (Token id:Id.Lit_Chars val:'\t\techo a > a &&\n' span_id:37) 
          (Token id:Id.Lit_Chars val:'\t\tsvn_cmd add .git a &&\n' span_id:38) (Token id:Id.Lit_Chars val:'\t\tsvn_cmd commit -m "create a nested git repo" &&\n' span_id:39) 
          (Token id:Id.Lit_Chars val:'\t\tsvn_cmd up &&\n' span_id:40) (Token id:Id.Lit_Chars val:'\t\techo hi >> .git/a &&\n' span_id:41) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tsvn_cmd commit -m "modify .git/a" &&\n'
            span_id: 42
          ) (Token id:Id.Lit_Chars val:'\t\tsvn_cmd up\n' span_id:43) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:44)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'clone an SVN repo containing a git repo' span_id:51))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:55) 
          (Token id:Id.Lit_Chars val:'\tgit svn clone "$svnrepo" g &&\n' span_id:56) (Token id:Id.Lit_Chars val:'\techo a > expect &&\n' span_id:57) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expect g/a\n' span_id:58)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'SVN-side change outside of .git' span_id:65))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:69) (Token id:Id.Lit_Chars val:'\t(\n' span_id:70) 
          (Token id:Id.Lit_Chars val:'\t\tcd s &&\n' span_id:71) (Token id:Id.Lit_Chars val:'\t\techo b >> a &&\n' span_id:72) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tsvn_cmd commit -m "SVN-side change outside of .git" &&\n'
            span_id: 73
          ) (Token id:Id.Lit_Chars val:'\t\tsvn_cmd up &&\n' span_id:74) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tsvn_cmd log -v | fgrep "SVN-side change outside of .git"\n'
            span_id: 75
          ) (Token id:Id.Lit_Chars val:'\t)\n' span_id:76)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'update git svn-cloned repo' span_id:83))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:87) (Token id:Id.Lit_Chars val:'\t(\n' span_id:88) 
          (Token id:Id.Lit_Chars val:'\t\tcd g &&\n' span_id:89) (Token id:Id.Lit_Chars val:'\t\tgit svn rebase &&\n' span_id:90) 
          (Token id:Id.Lit_Chars val:'\t\techo a > expect &&\n' span_id:91) (Token id:Id.Lit_Chars val:'\t\techo b >> expect &&\n' span_id:92) 
          (Token id:Id.Lit_Chars val:'\t\ttest_cmp a expect &&\n' span_id:93) (Token id:Id.Lit_Chars val:'\t\trm expect\n' span_id:94) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:95)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'SVN-side change inside of .git' span_id:102))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:106) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:107) (Token id:Id.Lit_Chars val:'\t\tcd s &&\n' span_id:108) 
          (Token id:Id.Lit_Chars val:'\t\tgit add a &&\n' span_id:109) (Token id:Id.Lit_Chars val:'\t\tgit commit -m "add a inside an SVN repo" &&\n' span_id:110) 
          (Token id:Id.Lit_Chars val:'\t\tgit log &&\n' span_id:111) (Token id:Id.Lit_Chars val:'\t\tsvn_cmd add --force .git &&\n' span_id:112) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tsvn_cmd commit -m "SVN-side change inside of .git" &&\n'
            span_id: 113
          ) (Token id:Id.Lit_Chars val:'\t\tsvn_cmd up &&\n' span_id:114) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tsvn_cmd log -v | fgrep "SVN-side change inside of .git"\n'
            span_id: 115
          ) (Token id:Id.Lit_Chars val:'\t)\n' span_id:116)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'update git svn-cloned repo' span_id:123))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:127) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:128) (Token id:Id.Lit_Chars val:'\t\tcd g &&\n' span_id:129) 
          (Token id:Id.Lit_Chars val:'\t\tgit svn rebase &&\n' span_id:130) (Token id:Id.Lit_Chars val:'\t\techo a > expect &&\n' span_id:131) 
          (Token id:Id.Lit_Chars val:'\t\techo b >> expect &&\n' span_id:132) (Token id:Id.Lit_Chars val:'\t\ttest_cmp a expect &&\n' span_id:133) 
          (Token id:Id.Lit_Chars val:'\t\trm expect\n' span_id:134) (Token id:Id.Lit_Chars val:'\t)\n' span_id:135)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'SVN-side change in and out of .git' span_id:142))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:146) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:147) (Token id:Id.Lit_Chars val:'\t\tcd s &&\n' span_id:148) 
          (Token id:Id.Lit_Chars val:'\t\techo c >> a &&\n' span_id:149) (Token id:Id.Lit_Chars val:'\t\tgit add a &&\n' span_id:150) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit commit -m "add a inside an SVN repo" &&\n'
            span_id: 151
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tsvn_cmd commit -m "SVN-side change in and out of .git" &&\n'
            span_id: 152
          ) (Token id:Id.Lit_Chars val:'\t\tsvn_cmd up &&\n' span_id:153) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tsvn_cmd log -v | fgrep "SVN-side change in and out of .git"\n'
            span_id: 154
          ) (Token id:Id.Lit_Chars val:'\t)\n' span_id:155)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'update git svn-cloned repo again' span_id:162))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:166) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:167) (Token id:Id.Lit_Chars val:'\t\tcd g &&\n' span_id:168) 
          (Token id:Id.Lit_Chars val:'\t\tgit svn rebase &&\n' span_id:169) (Token id:Id.Lit_Chars val:'\t\techo a > expect &&\n' span_id:170) 
          (Token id:Id.Lit_Chars val:'\t\techo b >> expect &&\n' span_id:171) (Token id:Id.Lit_Chars val:'\t\techo c >> expect &&\n' span_id:172) 
          (Token id:Id.Lit_Chars val:'\t\ttest_cmp a expect &&\n' span_id:173) (Token id:Id.Lit_Chars val:'\t\trm expect\n' span_id:174) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:175)
        )
      }
    )
    (C {(test_done)})
  ]
)