(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)})
  ]
)