Berdasarkan beberapa tanggapan lain untuk pertanyaan ini, saya telah menemukan skrip Ruby yang menangani relokasi git-svn. Anda dapat menemukannya di https://gist.github.com/henderea/6e779b66be3580c9a584 .
Ini menangani relokasi tanpa memeriksa salinan lain, dan bahkan menangani kasus di mana ada perubahan yang tidak didorong di satu atau lebih cabang (karena itu merusak logika reguler). Ini menggunakan hal-hal dari jawaban git filter-branch (untuk logika utama) dan jawaban tentang menyalin cabang dari satu contoh repo ke yang lain (untuk menyalin cabang dengan perubahan yang tidak didorong).
Saya telah menggunakan ini untuk merelokasi sekelompok repo git-svn yang saya miliki untuk bekerja, dan versi skrip ini (saya telah melalui iterasi yang tak terhitung jumlahnya) tampaknya berhasil untuk saya. Ini tidak super cepat, tetapi tampaknya menangani semua kasus yang saya temui dan menghasilkan repo yang sepenuhnya dipindahkan.
Skrip memberi Anda opsi untuk membuat salinan repo sebelum membuat perubahan apa pun, sehingga Anda dapat menggunakan opsi ini untuk membuat cadangan. Membuat salinan diperlukan jika Anda memiliki perubahan yang tidak didorong di cabang mana pun.
Skrip tidak menggunakan permata atau pustaka lain yang tidak termasuk dalam instalasi normal MRI Ruby. Itu menggunakan library readline dan fileutils yang disertakan dalam MRI.
Semoga naskah saya terbukti bermanfaat bagi orang lain. Jangan ragu untuk melakukan perubahan pada skrip.
CATATAN: Saya hanya menguji skrip ini dengan git 2.3.0 / 2.3.1 dan Ruby 2.2.0 di OS X 10.10 Yosemite (karena itulah lingkungan yang saya gunakan), tetapi saya berharap ini juga berfungsi di lingkungan lain. Tidak ada jaminan tentang Windows.