सबवर्जन मैनुअल में विशेष रूप से Vendor Branches पर एक अनुभाग है।
मूलभूत विचार यह है कि आप वर्तमान रिलीज, असम्बद्ध, फ़ोल्डर्स के एक सेट के माध्यम से भंडार में आयात करते हैं जो बाहरी परिवर्तनों को ट्रैक करता है (केवल बाहरी परिवर्तन, इसमें आपके संशोधन नहीं)। कुछ ".../repos/विक्रेता/(सॉफ्टवेयर)/वर्तमान" की तरह। फिर तुरंत शाखा में ".../repos/विक्रेता/(सॉफ्टवेयर)/(सॉफ्टवेयर संस्करण)"। जैसे-जैसे नए रिलीज आते हैं, "वर्तमान" निर्देशिका अपडेट करें और एक नई शाखा बनाएं, जैसे ".../repos/विक्रेता/(सॉफ्टवेयर)/(अगला संस्करण)"। यह आपको (और svn) अनमोडिफाइड स्रोत पर भिन्नता देता है ताकि बाहरी रूप से परिवर्तित हो सके।
सॉफ़्टवेयर में आपके संशोधन के लिए, "(सॉफ्टवेयर-संस्करण)" को अपनी परियोजना में ".../repos/(my-project)/trunk/(software)" जैसी शाखा बनाएं। जब आप तृतीय पक्ष स्रोत के अगले संस्करण में अपग्रेड करते हैं, तो "ट्रंक/(सॉफ़्टवेयर)" की कार्यशील प्रति में "(सॉफ़्टवेयर-संस्करण)" और "(अगला संस्करण)" के बीच अंतर को मर्ज करने के लिए svn को बताएं। यह सभी बाहरी परिवर्तनों को ट्रंक में खींचता है, जो प्रोजेक्ट स्रोत को अच्छी तरह से अपग्रेड करता है। शाखा और परियोजना को सामान्य के रूप में टैग करें।
सबवर्जन डिस्ट्रो में "svn_load_dirs.pl" नामक एक पर्ल स्क्रिप्ट शामिल है, जो "विक्रेता" प्रोजेक्ट को अपग्रेड करते समय मदद कर सकती है। यह हटाए गए, जोड़े गए, और नाम बदलकर फ़ाइलों को खोजता है और आपकी कार्यशील प्रतिलिपि को संशोधित करता है, उदाहरण के लिए "(वर्तमान)", उपयुक्त के रूप में।
स्रोत
2009-06-22 14:05:14
उस डरावनी एसवीएन पुस्तक में सबकुछ है, है ना? – Travis