Bu soruya verilen diğer yanıtlardan bazılarına dayanarak, git-svn yeniden konumlandırmayı işleyen bir Ruby betiği buldum. Bunu https://gist.github.com/henderea/6e779b66be3580c9a584 adresinde bulabilirsiniz .
Başka bir kopyayı teslim almadan yeniden konumlandırmayı gerçekleştirir ve hatta bir veya daha fazla dalda itilmemiş değişikliklerin olduğu durumu da idare eder (çünkü bu normal mantığı bozar). Git filter-branch cevabından (ana mantık için) ve repo'nun bir örneğinden diğerine dalların kopyalanması hakkındaki cevabı (itilmemiş değişikliklerle dalları kopyalamak için) kullanır.
Bunu, iş için sahip olduğum bir sürü git-svn deposunu yeniden konumlandırmak için kullanıyorum ve komut dosyasının bu sürümü (sayısız yinelemeden geçtim) benim için çalışıyor gibi görünüyor. Süper hızlı değil, ancak karşılaştığım tüm vakaları ele alıyor ve tamamen taşınmış bir repo ile sonuçlanıyor gibi görünüyor.
Komut dosyası, herhangi bir değişiklik yapmadan önce deponun bir kopyasını oluşturma seçeneği sunar, böylece bir yedekleme oluşturmak için bu seçeneği kullanabilirsiniz. Herhangi bir dalda aktarılmamış değişiklikleriniz varsa bir kopya oluşturmanız gerekir.
Komut dosyası, normal MRI Ruby kurulumunda yer almayan herhangi bir mücevher veya diğer kitaplıkları kullanmaz. MRI'da bulunan readline ve fileutils kitaplıklarını kullanır.
Umarım senaryom başkası için faydalı olur. Komut dosyası üzerinde değişiklik yapmaktan çekinmeyin.
NOT: Bu betiği yalnızca OS X 10.10 Yosemite üzerinde git 2.3.0 / 2.3.1 ve Ruby 2.2.0 ile test ettim (kullandığım ortam bu olduğundan), ancak diğer ortamlarda da çalışmasını bekliyorum. Yine de Windows konusunda hiçbir garanti yok.