मुझे इस सुविधा के बारे में कोई दस्तावेज नहीं मिला है, लेकिन ऐसा लगता है कि git svn विन्यास कई प्रकार की प्रविष्टियों का समर्थन करता है। इस तरह से आप अलग-अलग शाखाओं को भी जोड़ सकते हैं बिना अपने विन्यास में एक और दूरस्थ svn रिपॉजिटरी प्रविष्टि जोड़ने की आवश्यकता है और न ही कुछ निर्देशिकाओं की सभी शाखाओं को प्राप्त करने के लिए वाइल्डकार्ड का उपयोग कर सकते हैं।
मान लें कि आपका एसवीएन पेड़ वास्तव में गंदा है, बिना किसी तर्क के बहुत सारी शाखाएं हैं कि वे कैसे स्थित हैं, जैसे शाखाओं और उप-निर्देशिकाओं में अधिक शाखाएं हैं।
अर्थात
trunk
branches
-> branch1
-> sub-dir1
-> branch2
-> branch3
-> sub-dir2
-> branch4
-> sub-dir3
-> branchX
<... hundreds more ...>
और आप बस अपनी गिट रिपॉजिटरी में शामिल होने के लिए कुछ शाखाओं को चुनना चाहते हैं।
आप पहले बिना किसी अतिरिक्त शाखाओं के केवल ट्रंक के साथ अपने भंडार में प्रवेश कर सकते हैं:
git svn clone -r 10000:HEAD https://svn.com/MyRepo myrepo --prefix=svn/ --trunk=trunk
उसके बाद आपको निम्नलिखित कॉन्फ़िगरेशन देखना चाहिए:
localhost: elhigu$ git config --get-regexp "svn-remote."
svn-remote.svn.url https://svn.com/MyRepo
svn-remote.svn.fetch trunk:refs/remotes/svn/trunk
जब भी आप MyRepo से नई शाखा लाना चाहते हैं, तो आप विन्यास द्वारा नई भ्रूण प्रविष्टियाँ जोड़ सकते हैं:
git config --add svn-remote.svn.fetch branches/sub-dir2/branch4:refs/remotes/svn/branches/sub-dir2/branch4
या आप एक ही कॉन्फ़िगरेशन को .it / config में संपादित कर सकते हैं
बस चलाने के लिए उन्हें जोड़ने के बाद नई शाखाओं लाने के लिए:
git svn fetch -r 10000:HEAD
[संपादित करें] कभी-कभी नई जोड़ा शाखाओं को लाने के लिए --all पैरामीटर के साथ लाने के लिए आवश्यक प्रतीत होता है:
git svn fetch --all -r 10000:HEAD