वर्तमान में मेरी कंपनी ने SVN रेपो में एक विजुअल स्टूडियो सॉलिशन दिया है जो इस प्रकार है:
SolutionFolder (~3.5 GB)
|-> SolutionName.sln
|-> .. Some source code folders... (~250 MB)
|-> ThirdParty (~3 GB)
|-> Tools
| -> Tool1
| -> Tool2
टूल 1 और टूल 2 स्वतंत्र रूप से निर्मित होते हैं (उनके अपने समाधान होते हैं), लेकिन मुख्य निर्माण में उपयोग किए जाने वाले निष्पादनयोग्य का उत्पादन करते हैं। थर्डपार्टी फ़ोल्डर में परियोजना के लिए सभी निर्भरताएं हैं, जिसमें कुछ पूर्व-संकलित 100+ एमबी .लिब फाइलें और बूस्ट लाइब्रेरी जैसे बूस्ट शामिल हैं।
यह सुविधाजनक है कि यह सब एक एसवीएन रेपो में है ताकि (1) डेवलपर को केवल एक चेक-आउट करना पड़े, और (2) हमें ट्रैक के प्रत्येक संस्करण के लिए निर्भरता के कौन से संस्करणों की आवश्यकता है, इसे ट्रैक करने की आवश्यकता नहीं है। दूसरी तरफ, इस रेपो की जांच में थोड़ा समय लगता है।
इस परियोजना संरचना को आगे बढ़ाने के लिए सबसे अच्छा तरीका क्या होगा? संभवतः यह मुख्य रेपो से थर्डपार्टी और संभवतः टूल्स को बाहर करने के लिए सबसे अच्छा है, लेकिन हम थर्डपार्टी को एक चरण में आसानी से डाउनलोड करने योग्य रखना चाहेंगे, और हम इसे पसंद करते हैं (और मुख्य रेपो और थर्डपार्टी / टूल्स के बीच संस्करण बेमेल होगा)।
इस बिंदु पर मुझे इतिहास को संरक्षित करने में कोई दिलचस्पी नहीं है, बस यह पता लगाना है कि इस तरह की परियोजना को कैसे व्यवस्थित किया जाए।