(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 dcommit can commit renames of files with ugly names'
                  span_id: 13
                )
              )
            }
          spids: [11]
        )
      ]
    )
    (C {(.)} {(./lib-git-svn.sh)})
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'load repository with strange names' span_id:25))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:29) 
          (Token
            id: Id.Lit_Chars
            val: '\tsvnadmin load -q "$rawsvnrepo" <"$TEST_DIRECTORY"/t9115/funky-names.dump\n'
            span_id: 30
          )
        )
      }
    )
    (C {(maybe_start_httpd)} {(gtk) (Id.Lit_Other '+')})
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'init and fetch repository' span_id:43))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:47) 
          (Token id:Id.Lit_Chars val:'\tgit svn init "$svnrepo" &&\n' span_id:48) (Token id:Id.Lit_Chars val:'\tgit svn fetch &&\n' span_id:49) 
          (Token id:Id.Lit_Chars val:'\tgit reset --hard git-svn\n' span_id:50) (Token id:Id.Lit_Chars val:'\t' span_id:51)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'create file in existing ugly and empty dir' span_id:58))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:62) 
          (Token id:Id.Lit_Chars val:'\tmkdir -p "#{bad_directory_name}" &&\n' span_id:63) (Token id:Id.Lit_Chars val:'\techo hi > "#{bad_directory_name}/ foo" &&\n' span_id:64) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit update-index --add "#{bad_directory_name}/ foo" &&\n'
            span_id: 65
          ) (Token id:Id.Lit_Chars val:'\tgit commit -m "new file in ugly parent" &&\n' span_id:66) 
          (Token id:Id.Lit_Chars val:'\tgit svn dcommit\n' span_id:67) (Token id:Id.Lit_Chars val:'\t' span_id:68)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'rename ugly file' span_id:75))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:79) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit mv "#{bad_directory_name}/ foo" "file name with feces" &&\n'
            span_id: 80
          ) (Token id:Id.Lit_Chars val:'\tgit commit -m "rename ugly file" &&\n' span_id:81) 
          (Token id:Id.Lit_Chars val:'\tgit svn dcommit\n' span_id:82) (Token id:Id.Lit_Chars val:'\t' span_id:83)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'rename pretty file' span_id:90))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:94) 
          (Token id:Id.Lit_Chars val:'\techo :x > pretty &&\n' span_id:95) (Token id:Id.Lit_Chars val:'\tgit update-index --add pretty &&\n' span_id:96) 
          (Token id:Id.Lit_Chars val:'\tgit commit -m "pretty :x" &&\n' span_id:97) (Token id:Id.Lit_Chars val:'\tgit svn dcommit &&\n' span_id:98) 
          (Token id:Id.Lit_Chars val:'\tmkdir -p regular_dir_name &&\n' span_id:99) (Token id:Id.Lit_Chars val:'\tgit mv pretty regular_dir_name/pretty &&\n' span_id:100) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit commit -m "moved pretty file" &&\n'
            span_id: 101
          ) (Token id:Id.Lit_Chars val:'\tgit svn dcommit\n' span_id:102) 
          (Token id:Id.Lit_Chars val:'\t' span_id:103)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'rename pretty file into ugly one' span_id:110))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:114) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit mv regular_dir_name/pretty "#{bad_directory_name}/ booboo" &&\n'
            span_id: 115
          ) (Token id:Id.Lit_Chars val:'\tgit commit -m booboo &&\n' span_id:116) 
          (Token id:Id.Lit_Chars val:'\tgit svn dcommit\n' span_id:117) (Token id:Id.Lit_Chars val:'\t' span_id:118)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'add a file with plus signs' span_id:125))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:129) 
          (Token id:Id.Lit_Chars val:'\techo .. > +_+ &&\n' span_id:130) (Token id:Id.Lit_Chars val:'\tgit update-index --add +_+ &&\n' span_id:131) 
          (Token id:Id.Lit_Chars val:'\tgit commit -m plus &&\n' span_id:132) (Token id:Id.Lit_Chars val:'\tmkdir gtk+ &&\n' span_id:133) 
          (Token id:Id.Lit_Chars val:'\tgit mv +_+ gtk+/_+_ &&\n' span_id:134) (Token id:Id.Lit_Chars val:'\tgit commit -m plus_dir &&\n' span_id:135) 
          (Token id:Id.Lit_Chars val:'\tgit svn dcommit\n' span_id:136) (Token id:Id.Lit_Chars val:'\t' span_id:137)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'clone the repository to test rebase' span_id:144))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:148) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit svn clone "$svnrepo" test-rebase &&\n'
            span_id: 149
          ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:150) 
          (Token id:Id.Lit_Chars val:'\t\tcd test-rebase &&\n' span_id:151) (Token id:Id.Lit_Chars val:'\t\techo test-rebase >test-rebase &&\n' span_id:152) 
          (Token id:Id.Lit_Chars val:'\t\tgit add test-rebase &&\n' span_id:153) (Token id:Id.Lit_Chars val:'\t\tgit commit -m test-rebase\n' span_id:154) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:155) (Token id:Id.Lit_Chars val:'\t' span_id:156)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'make a commit to test rebase' span_id:163))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:167) 
          (Token
            id: Id.Lit_Chars
            val: '\t\techo test-rebase-main > test-rebase-main &&\n'
            span_id: 168
          ) (Token id:Id.Lit_Chars val:'\t\tgit add test-rebase-main &&\n' span_id:169) 
          (Token id:Id.Lit_Chars val:'\t\tgit commit -m test-rebase-main &&\n' span_id:170) (Token id:Id.Lit_Chars val:'\t\tgit svn dcommit\n' span_id:171) 
          (Token id:Id.Lit_Chars val:'\t' span_id:172)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'git svn rebase works inside a fresh-cloned repository'
            span_id: 179
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:183) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:184) (Token id:Id.Lit_Chars val:'\t\tcd test-rebase &&\n' span_id:185) 
          (Token id:Id.Lit_Chars val:'\t\tgit svn rebase &&\n' span_id:186) (Token id:Id.Lit_Chars val:'\t\ttest -e test-rebase-main &&\n' span_id:187) 
          (Token id:Id.Lit_Chars val:'\t\ttest -e test-rebase\n' span_id:188) (Token id:Id.Lit_Chars val:'\t)' span_id:189)
        )
      }
    )
    (C {(prepare_a_utf8_locale)})
    (C {(test_expect_success)} 
      {(UTF8) (Id.Lit_Comma ',') (Id.KW_Bang '!') (MINGW) (Id.Lit_Comma ',') (Id.KW_Bang '!') 
        (UTF8_NFD_TO_NFC)
      } {(SQ (Token id:Id.Lit_Chars val:'svn.pathnameencoding=cp932 new file on dcommit' span_id:230))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:234) 
          (Token id:Id.Lit_Chars val:'\tLC_ALL=$a_utf8_locale &&\n' span_id:235) (Token id:Id.Lit_Chars val:'\texport LC_ALL &&\n' span_id:236) 
          (Token id:Id.Lit_Chars val:'\tneq=$(printf "\\201\\202") &&\n' span_id:237) (Token id:Id.Lit_Chars val:'\tgit config svn.pathnameencoding cp932 &&\n' span_id:238) 
          (Token id:Id.Lit_Chars val:'\techo neq >"$neq" &&\n' span_id:239) (Token id:Id.Lit_Chars val:'\tgit add "$neq" &&\n' span_id:240) 
          (Token id:Id.Lit_Chars val:'\tgit commit -m "neq" &&\n' span_id:241) (Token id:Id.Lit_Chars val:'\tgit svn dcommit\n' span_id:242)
        )
      }
    )
    (C {(test_expect_success)} 
      {(Id.KW_Bang '!') (MINGW) (Id.Lit_Comma ',') (Id.KW_Bang '!') (UTF8_NFD_TO_NFC)} {(SQ (Token id:Id.Lit_Chars val:'svn.pathnameencoding=cp932 rename on dcommit' span_id:258))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:262) 
          (Token id:Id.Lit_Chars val:'\tLC_ALL=$a_utf8_locale &&\n' span_id:263) (Token id:Id.Lit_Chars val:'\texport LC_ALL &&\n' span_id:264) 
          (Token id:Id.Lit_Chars val:'\tinf=$(printf "\\201\\207") &&\n' span_id:265) (Token id:Id.Lit_Chars val:'\tgit config svn.pathnameencoding cp932 &&\n' span_id:266) 
          (Token id:Id.Lit_Chars val:'\techo inf >"$inf" &&\n' span_id:267) (Token id:Id.Lit_Chars val:'\tgit add "$inf" &&\n' span_id:268) 
          (Token id:Id.Lit_Chars val:'\tgit commit -m "inf" &&\n' span_id:269) (Token id:Id.Lit_Chars val:'\tgit svn dcommit &&\n' span_id:270) 
          (Token id:Id.Lit_Chars val:'\tgit mv "$inf" inf &&\n' span_id:271) (Token id:Id.Lit_Chars val:'\tgit commit -m "inf rename" &&\n' span_id:272) 
          (Token id:Id.Lit_Chars val:'\tgit svn dcommit\n' span_id:273)
        )
      }
    )
    (C {(stop_httpd)})
    (C {(test_done)})
  ]
)