(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <"git svn dcommit can commit renames of files with ugly names">)}
          spids: [11]
        )
      ]
      spids: [11]
    )
    (C {(.)} {(./lib-git-svn.sh)})
    (C {(test_expect_success)} {(SQ <"load repository with strange names">)} 
      {
        (SQ <"\n"> 
          <"\tsvnadmin load -q \"$rawsvnrepo\" <\"$TEST_DIRECTORY\"/t9115/funky-names.dump\n">
        )
      }
    )
    (C {(maybe_start_httpd)} {(gtk) (Lit_Other "+")})
    (C {(test_expect_success)} {(SQ <"init and fetch repository">)} 
      {
        (SQ <"\n"> <"\tgit svn init \"$svnrepo\" &&\n"> <"\tgit svn fetch &&\n"> 
          <"\tgit reset --hard git-svn\n"> <"\t">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"create file in existing ugly and empty dir">)} 
      {
        (SQ <"\n"> <"\tmkdir -p \"#{bad_directory_name}\" &&\n"> 
          <"\techo hi > \"#{bad_directory_name}/ foo\" &&\n"> <"\tgit update-index --add \"#{bad_directory_name}/ foo\" &&\n"> 
          <"\tgit commit -m \"new file in ugly parent\" &&\n"> <"\tgit svn dcommit\n"> <"\t">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"rename ugly file">)} 
      {
        (SQ <"\n"> <"\tgit mv \"#{bad_directory_name}/ foo\" \"file name with feces\" &&\n"> 
          <"\tgit commit -m \"rename ugly file\" &&\n"> <"\tgit svn dcommit\n"> <"\t">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"rename pretty file">)} 
      {
        (SQ <"\n"> <"\techo :x > pretty &&\n"> <"\tgit update-index --add pretty &&\n"> 
          <"\tgit commit -m \"pretty :x\" &&\n"> <"\tgit svn dcommit &&\n"> <"\tmkdir -p regular_dir_name &&\n"> 
          <"\tgit mv pretty regular_dir_name/pretty &&\n"> <"\tgit commit -m \"moved pretty file\" &&\n"> <"\tgit svn dcommit\n"> <"\t">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"rename pretty file into ugly one">)} 
      {
        (SQ <"\n"> <"\tgit mv regular_dir_name/pretty \"#{bad_directory_name}/ booboo\" &&\n"> 
          <"\tgit commit -m booboo &&\n"> <"\tgit svn dcommit\n"> <"\t">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"add a file with plus signs">)} 
      {
        (SQ <"\n"> <"\techo .. > +_+ &&\n"> <"\tgit update-index --add +_+ &&\n"> 
          <"\tgit commit -m plus &&\n"> <"\tmkdir gtk+ &&\n"> <"\tgit mv +_+ gtk+/_+_ &&\n"> <"\tgit commit -m plus_dir &&\n"> 
          <"\tgit svn dcommit\n"> <"\t">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"clone the repository to test rebase">)} 
      {
        (SQ <"\n"> <"\tgit svn clone \"$svnrepo\" test-rebase &&\n"> <"\t(\n"> 
          <"\t\tcd test-rebase &&\n"> <"\t\techo test-rebase >test-rebase &&\n"> <"\t\tgit add test-rebase &&\n"> 
          <"\t\tgit commit -m test-rebase\n"> <"\t)\n"> <"\t">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"make a commit to test rebase">)} 
      {
        (SQ <"\n"> <"\t\techo test-rebase-main > test-rebase-main &&\n"> 
          <"\t\tgit add test-rebase-main &&\n"> <"\t\tgit commit -m test-rebase-main &&\n"> <"\t\tgit svn dcommit\n"> <"\t">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"git svn rebase works inside a fresh-cloned repository">)} 
      {
        (SQ <"\n"> <"\t(\n"> <"\t\tcd test-rebase &&\n"> <"\t\tgit svn rebase &&\n"> 
          <"\t\ttest -e test-rebase-main &&\n"> <"\t\ttest -e test-rebase\n"> <"\t)">
        )
      }
    )
    (C {(prepare_a_utf8_locale)})
    (C {(test_expect_success)} 
      {(UTF8) (Lit_Comma ",") (KW_Bang "!") (MINGW) (Lit_Comma ",") (KW_Bang "!") (UTF8_NFD_TO_NFC)} {(SQ <"svn.pathnameencoding=cp932 new file on dcommit">)} 
      {
        (SQ <"\n"> <"\tLC_ALL=$a_utf8_locale &&\n"> <"\texport LC_ALL &&\n"> 
          <"\tneq=$(printf \"\\201\\202\") &&\n"> <"\tgit config svn.pathnameencoding cp932 &&\n"> <"\techo neq >\"$neq\" &&\n"> 
          <"\tgit add \"$neq\" &&\n"> <"\tgit commit -m \"neq\" &&\n"> <"\tgit svn dcommit\n">
        )
      }
    )
    (C {(test_expect_success)} {(KW_Bang "!") (MINGW) (Lit_Comma ",") (KW_Bang "!") (UTF8_NFD_TO_NFC)} 
      {(SQ <"svn.pathnameencoding=cp932 rename on dcommit">)} 
      {
        (SQ <"\n"> <"\tLC_ALL=$a_utf8_locale &&\n"> <"\texport LC_ALL &&\n"> 
          <"\tinf=$(printf \"\\201\\207\") &&\n"> <"\tgit config svn.pathnameencoding cp932 &&\n"> <"\techo inf >\"$inf\" &&\n"> 
          <"\tgit add \"$inf\" &&\n"> <"\tgit commit -m \"inf\" &&\n"> <"\tgit svn dcommit &&\n"> <"\tgit mv \"$inf\" inf &&\n"> 
          <"\tgit commit -m \"inf rename\" &&\n"> <"\tgit svn dcommit\n">
        )
      }
    )
    (C {(stop_httpd)})
    (C {(test_done)})
  ]
)