ब्रांचिंग (संस्करण नियंत्रण)

वर्जन कंट्रोल और सॉफ्टवेयर कॉन्फ़िगरेशन मैनेजमेंट में ब्रांचिंग, वर्जन कंट्रोल (जैसे सोर्स कोड फाइल या डायरेक्टरी ट्री) के अंतर्गत किसी वस्तु का दोहराव है। इसके बाद प्रत्येक वस्तु को अलग-अलग और समानांतर में संशोधित किया जा सकता है ताकि वस्तुएं अलग-अलग हो जाएं। इस संदर्भ में वस्तुओं को शाखाएँ कहा जाता है। संस्करण नियंत्रण प्रणाली के उपयोगकर्ता किसी भी शाखा की शाखा बना सकते हैं।

शाखाओं को 'ट्री', 'स्ट्रीम्स' या 'कोडलाइन' के रूप में भी जाना जाता है। मूल शाखा को कभी-कभी मूल शाखा, अपस्ट्रीम शाखा (या केवल अपस्ट्रीम कहा जाता है, विशेष रूप से अगर शाखाओं को विभिन्न संगठनों या व्यक्तियों द्वारा बनाए रखा जाता है), या 'बैकिंग स्ट्रीम'।

चाइल्ड ब्रांचेस वे शाखाएं हैं जिनके पैरेंट होते हैं; माता-पिता के बिना एक शाखा को ट्रंक या 'मेनलाइन' कहा जाता है। ट्रंक को कभी-कभी हेड के रूप में संदर्भित किया जाता है, लेकिन उचित रूप से हेड शाखा को नहीं, बल्कि किसी शाखा पर सबसे हालिया प्रतिबद्धता के लिए संदर्भित करता है, और दोनों ट्रंक और प्रत्येक नामित शाखा का अपना हेड होता है। ट्रंक सामान्यतः उस परियोजना का आधार माना जाता है जिस पर विकास होता है। यदि विकासकर्ता विशेष रूप से ट्रंक पर काम कर रहे हैं, तो इसमें हमेशा परियोजना का नवीनतम अत्याधुनिक संस्करण सम्मिलित होता है, लेकिन इसलिए यह सबसे अस्थिर संस्करण भी हो सकता है। एक अन्य दृष्टिकोण ट्रंक से एक शाखा को विभाजित करना है, उस शाखा में परिवर्तनों को लागू करना और जब शाखा स्थिर और काम कर रही हो तो परिवर्तनों को वापस ट्रंक में विलय कर दें। विकास प्रणाली और कमिट (डेटा प्रबंधन) नीति के आधार पर ट्रंक में सबसे स्थिर या सबसे कम स्थिर या कुछ-बीच का संस्करण हो सकता है। ट्रंक के लिए अन्य शब्दों में बेसलाइन, मेनलाइन और मास्टर सम्मिलित हैं, हालांकि कुछ स्तिथियों में इनका उपयोग समान लेकिन अलग अर्थों में किया जाता है - देखें । प्रायः मुख्य विकासक का काम ट्रंक में होता है और स्थिर संस्करण शाखित होते हैं, और कभी-कभी बग-फिक्स को शाखाओं से ट्रंक में मिला दिया जाता है। जब भविष्य के संस्करणों का विकास गैर-ट्रंक शाखाओं में किया जाता है, तो यह सामान्यतः उन परियोजनाओं के लिए किया जाता है जो प्रायः नहीं बदलते हैं, या जहां एक परिवर्तन को ट्रंक में सम्मिलित करने के लिए तैयार होने तक विकसित होने में लंबा समय लगता है।

कुछ वितरित संशोधन नियंत्रण में, जैसे डार्क्स, रिपॉजिटरी (संस्करण नियंत्रण) और शाखाओं के बीच कोई भेद नहीं किया गया है; इन प्रणालियों में, रिपॉजिटरी की एक प्रति लाना ब्रांचिंग के बराबर है।

ब्रांचिंग का तात्पर्य बाद में विलय (संशोधन नियंत्रण) या मूल शाखा में परिवर्तनों को वापस एकीकृत करने की क्षमता से भी है। प्रायः परिवर्तन वापस ट्रंक में विलय कर दिए जाते हैं, भले ही यह मूल शाखा न हो। एक शाखा जिसका विलय करने का अभीष्ट नहीं है (उदाहरण के लिए क्योंकि यह किसी तीसरे पक्ष द्वारा असंगत लाइसेंस के अंतर्गत जारी किया गया है, या यह एक अलग उद्देश्य की सेवा करने का प्रयास करता है) को सामान्यतः फोर्क (सॉफ्टवेयर विकास) कहा जाता है।

ब्रांचिंग के लिए प्रेरणा
शाखाएँ सॉफ्टवेयर के कुछ हिस्सों को समानांतर में विकसित करने की अनुमति देती हैं। बड़ी परियोजनाओं को भरने के लिए कई भूमिकाओं की आवश्यकता होती है, जिसमें डेवलपर्स, बिल्ड मैनेजर और सॉफ्टवेयर गुणवत्ता आश्वासन कर्मी सम्मिलित हैं। इसके अतिरिक्त, विभिन्न ऑपरेटिंग सिस्टम प्लेटफॉर्म पर कई रिलीज को बनाए रखना पड़ सकता है। शाखाएँ योगदानकर्ताओं को कोडबेस को अस्थिर किए बिना परिवर्तनों को अलग करने की अनुमति देती हैं, उदाहरण के लिए, बग के लिए पैच (कंप्यूटिंग), नवीन फीचर (सॉफ़्टवेयर अभिकल्पना), और सॉफ्टवेयर वर्जनिंग प्रणाली एकीकरण है। परीक्षण के बाद ये परिवर्तन बाद में विलय (संशोधन नियंत्रण) (पुनः समकालित) हो सकते हैं।

डेवलपमेंट ब्रांच
एक डेवलपमेंट ब्रांच या सॉफ्टवेयर के एक हिस्से का डेवलपमेंट ट्री एक ऐसा संस्करण है जो सॉफ्टवेयर विकास के अंतर्गत है, और अभी तक आधिकारिक तौर पर सॉफ्टवेयर रिलीज नहीं किया गया है। ओपन-सोर्स प्रतिरूप समुदाय में, रिलीज़ की धारणा सामान्य रूप से रूपक है, क्योंकि कोई भी सामान्यतः किसी वांछित संस्करण की जांच कर सकता है, चाहे वह विकास शाखा में हो या नहीं। प्रायः, जो संस्करण अंततः अगला प्रमुख संस्करण बन जाएगा, उसे विकास शाखा कहा जाता है। हालाँकि, एक निश्चित समय में प्रायः सॉफ्टवेयर के एक से अधिक अनुवर्ती संस्करण विकास के अधीन होते हैं।

कुछ पुनरीक्षण नियंत्रण प्रणालियों में मुख्य विकास शाखा के लिए विशिष्ट शब्दावली होती है। उदाहरण के लिए, समवर्ती संस्करण प्रणाली में, इसे मुख्य शाखा कहा जाता है। गिट डिफ़ॉल्ट रूप से मास्टर का उपयोग करता है, हालांकि गिटहब और गिटलैब ने जॉर्ज फ्लॉयड की हत्या की मुख्य प्रतिक्रियाओं पर स्थानांतरण किया। एक अधिक सामान्य शब्द ट्रंक है।

शैडो या मैजिक ब्रांचेज
सीवीएसएनटी में, एक शैडो या मैजिक ब्रांच अपस्ट्रीम ब्रांच में किए गए बदलावों को शैडो करती है, जिससे छोटे बदलावों को बनाए रखना आसान हो जाता है (सीवीसी एक ओपन-सोर्स पैकेज बिल्डिंग सिस्टम है rPath द्वारा उत्पादित पैकेजों के लिए संशोधन-नियंत्रण प्रणाली को सम्मिलित करता है।)

रिपोजिटरी क्लोन
वितरित पुनरीक्षण नियंत्रण में, शाखाओं के साथ संपूर्ण रिपॉजिटरी का अनुकरण किया जा सकता है और आगे काम किया जा सकता है। मोनोटोन (सॉफ्टवेयर) (एमटीएन), मर्कुरियल (एचजी) और गिट (सॉफ्टवेयर) इसे क्लोन कहते हैं; बाज़ार (सॉफ्टवेयर) इसे शाखा कहते हैं।

यह भी देखें

 * संशोधन टैग