Basándome en algunas de las otras respuestas a esta pregunta, se me ocurrió un script Ruby que maneja la reubicación de git-svn. Puede encontrarlo en https://gist.github.com/henderea/6e779b66be3580c9a584 .
Maneja la reubicación sin verificar otra copia, e incluso maneja el caso donde hay cambios no empujados en una o más ramas (ya que eso rompe la lógica regular). Utiliza cosas de la respuesta de git filter-branch (para la lógica principal) y la respuesta sobre copiar ramas de una instancia del repositorio a otra (para copiar ramas con cambios no empujados).
He estado usando esto para reubicar un montón de repositorios git-svn que tengo para trabajar, y esta versión del script (he pasado por innumerables iteraciones) parece funcionar para mí. No es muy rápido, pero parece manejar todos los casos que he encontrado y resulta en un repositorio completamente reubicado.
El script le da la opción de crear una copia del repositorio antes de realizar cualquier cambio, por lo que puede usar esta opción para crear una copia de seguridad. Es necesario crear una copia si tiene cambios no enviados en alguna rama.
El script no utiliza gemas u otras bibliotecas que no se incluyan en la instalación normal de MRI Ruby. Utiliza las bibliotecas readline y fileutils incluidas en MRI.
Con suerte, mi guión le resultará útil a otra persona. No dude en realizar cambios en el guión.
NOTA: Solo he probado este script con git 2.3.0 / 2.3.1 y Ruby 2.2.0 en OS X 10.10 Yosemite (ya que ese es el entorno que uso), pero espero que funcione también en otros entornos. Sin embargo, no hay garantías sobre Windows.