(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 gc basic tests' span_id:12))}
          spids: [10]
        )
      ]
    )
    (C {(.)} {(./lib-git-svn.sh)})
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'setup directories and test repo' span_id:24))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:28) 
          (Token id:Id.Lit_Chars val:'\tmkdir import &&\n' span_id:29) (Token id:Id.Lit_Chars val:'\tmkdir tmp &&\n' span_id:30) 
          (Token
            id: Id.Lit_Chars
            val: '\techo "Sample text for Subversion repository." > import/test.txt &&\n'
            span_id: 31
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\tsvn_cmd import -m "import for git svn" import "$svnrepo" > /dev/null\n'
            span_id: 32
          ) (Token id:Id.Lit_Chars val:'\t' span_id:33)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'checkout working copy from svn' span_id:40))} {(SQ (Token id:Id.Lit_Chars val:'svn_cmd co "$svnrepo" test_wc' span_id:46))}
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'set some properties to create an unhandled.log file'
            span_id: 53
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:57) (Token id:Id.Lit_Chars val:'\t(\n' span_id:58) 
          (Token id:Id.Lit_Chars val:'\t\tcd test_wc &&\n' span_id:59) (Token id:Id.Lit_Chars val:'\t\tsvn_cmd propset foo bar test.txt &&\n' span_id:60) 
          (Token id:Id.Lit_Chars val:'\t\tsvn_cmd commit -m "property set"\n' span_id:61) (Token id:Id.Lit_Chars val:'\t)' span_id:62)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'Setup repo' span_id:69))} 
      {(SQ (Token id:Id.Lit_Chars val:'git svn init "$svnrepo"' span_id:73))}
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'Fetch repo' span_id:80))} 
      {(SQ (Token id:Id.Lit_Chars val:'git svn fetch' span_id:84))}
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'make backup copy of unhandled.log' span_id:91))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:95) 
          (Token
            id: Id.Lit_Chars
            val: '\t cp .git/svn/refs/remotes/git-svn/unhandled.log tmp\n'
            span_id: 96
          ) (Token id:Id.Lit_Chars val:'\t' span_id:97)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'create leftover index' span_id:104))} 
      {(SQ (Token id:Id.Lit_Chars val:'> .git/svn/refs/remotes/git-svn/index' span_id:108))}
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git svn gc runs' span_id:115))} 
      {(SQ (Token id:Id.Lit_Chars val:'git svn gc' span_id:119))}
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git svn index removed' span_id:126))} 
      {(SQ (Token id:Id.Lit_Chars val:'! test -f .git/svn/refs/remotes/git-svn/index' span_id:130))}
    )
    (command.If
      arms: [
        (if_arm
          cond: [(C {(test)} {(-r)} {(.git/svn/refs/remotes/git-svn/unhandled.log.gz)})]
          action: [
            (C {(test_expect_success)} 
              {(SQ (Token id:Id.Lit_Chars val:'git svn gc produces a valid gzip file' span_id:148))} 
              {
                (SQ (Token id:Id.Lit_Chars val:'\n' span_id:152) 
                  (Token
                    id: Id.Lit_Chars
                    val: '\t\t gunzip .git/svn/refs/remotes/git-svn/unhandled.log.gz\n'
                    span_id: 153
                  ) (Token id:Id.Lit_Chars val:'\t\t' span_id:154)
                )
              }
            )
          ]
          spids: [134 142]
        )
      ]
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'git svn gc does not change unhandled.log files' span_id:163))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:167) 
          (Token
            id: Id.Lit_Chars
            val: '\t test_cmp .git/svn/refs/remotes/git-svn/unhandled.log tmp/unhandled.log\n'
            span_id: 168
          ) (Token id:Id.Lit_Chars val:'\t' span_id:169)
        )
      }
    )
    (C {(test_done)})
  ]
)