इस सवाल के कुछ अन्य जवाबों के आधार पर, मैं रूबी स्क्रिप्ट के साथ आया हूं जो गिट-स्वॉन को स्थानांतरित करने का काम संभालती है। आप इसे https://gist.github.com/henderea/6e779b66be3580c9a584 पर पा सकते हैं ।
यह दूसरी कॉपी को चेक किए बिना रिलॉकेट को हैंडल करता है, और यह उस केस को भी हैंडल करता है, जहां एक या एक से अधिक ब्रांच में अन-पुश किए गए बदलाव होते हैं (क्योंकि वह रेगुलर लॉजिक को तोड़ता है)। यह git फ़िल्टर-शाखा उत्तर (मुख्य तर्क के लिए) और रेपो के एक उदाहरण से दूसरे में शाखाओं की प्रतिलिपि बनाने के बारे में उत्तर का उपयोग करता है (बिना-पुश किए गए शाखाओं के साथ शाखाओं की प्रतिलिपि बनाने के लिए)।
मैं इसे git-svn repos का एक गुच्छा स्थानांतरित करने के लिए उपयोग कर रहा हूं जो मेरे पास काम के लिए है, और स्क्रिप्ट का यह संस्करण (मैं अनगिनत पुनरावृत्तियों के माध्यम से रहा हूं) मेरे लिए काम करने लगता है। यह सुपर-फास्ट नहीं है, लेकिन यह मेरे द्वारा सामना किए गए सभी मामलों को संभालने के लिए लगता है और परिणामस्वरूप पूरी तरह से स्थानांतरित रेपो में होता है।
स्क्रिप्ट आपको कोई भी बदलाव करने से पहले रेपो की एक प्रति बनाने का विकल्प देती है, ताकि आप बैकअप बनाने के लिए इस विकल्प का उपयोग कर सकें। यदि आपको किसी भी शाखा में अन-पुश परिवर्तन हुए हैं, तो एक प्रति बनाना आवश्यक है।
स्क्रिप्ट किसी भी रत्न या अन्य पुस्तकालयों का उपयोग नहीं करती है जो सामान्य एमआरआई रूबी स्थापना में शामिल नहीं हैं। यह एमआरआई में शामिल रीडलाइन और फाइलुटिल पुस्तकालयों का उपयोग करता है।
उम्मीद है कि मेरी स्क्रिप्ट किसी और के लिए उपयोगी साबित होगी। स्क्रिप्ट में बदलाव करने के लिए स्वतंत्र महसूस करें।
नोट: मैंने केवल इस स्क्रिप्ट को git 2.3.0 / 2.3.1 और रूबी 2.2.0 के साथ OS X 10.10 Yosemite पर परीक्षण किया है (क्योंकि मैं जिस पर्यावरण का उपयोग करता हूं), लेकिन मैं इसके साथ ही अन्य वातावरणों पर भी काम करने की उम्मीद करूंगा। हालांकि, विंडोज के बारे में कोई गारंटी नहीं है।