यह सब संदर्भ के बारे में है: आप कितनी बार रिलीज करते हैं और एक रिलीज में क्या है।
यहां बी केस का उपयोग करके मैंने अपने पुराने काम के साथ केस केस का थोड़ा सा अध्ययन किया है (हमने इसे उद्देश्य से शाखा कहा है )।
कहानी को संदर्भ में रखने के लिए,
- एक रिलीज में हमारे सॉफ्टवेयर में नई विशेषताएं शामिल थीं: नए गेमिंग मोड, नई कार्यक्षमता, नए कॉन्फ़िगरेशन विकल्प।
- रिलीज़ चक्र काफी लंबा था: हमारे ग्राहक ऐसे विश्वविद्यालय थे जो आमतौर पर एक वर्ष के लिए एक सुविधा के साथ चिपके रहते थे।
मुख्य विकास तब तक ट्रंक में बनाया गया था जब तक कि हम एक निश्चित रिलीज के लिए एक सुविधा-पूर्ण स्थिति तक नहीं पहुंच गए थे। उस बिंदु पर, हम एक शाखा बनाएंगे, प्रोजेक्टनेम-ज़मीन -2012 कहेंगे और उसी शाखा में हमारे गुणवत्ता परीक्षण और बग को ठीक करेंगे। एक बार जब हम सार्वजनिक रिलीज़ के लिए तैयार होते हैं, तो हम उस शाखा में कोड टैग करेंगे, और रिलीज़ करेंगे।
हालांकि, रिलीज पर विकास उस टैग पर समाप्त नहीं हुआ। अनिवार्य रूप से, हमारे पास क्लाइंट थे जो रिलीज के साथ बग या छोटे मुद्दे पाए गए। तो उस स्थिति में, हमें बस इतना करना है कि उस शाखा में वापस जाएं, कोड को पैच करें और रिलीज़ होने के लिए , वर्ष २०१२ की शाखा का नया टैग किया गया संस्करण बनाएं और फ़िक्सेस को ट्रंक में वापस मर्ज करें।
हमारे मामले में, यह दृष्टिकोण अनुकूल था क्योंकि कुछ उपयोगकर्ता सीमित रिलीज के साथ पुरानी सुविधाओं के साथ रहना पसंद करते थे, या सिर्फ इसलिए कि उनके बुनियादी ढांचे को एक नए संस्करण के बजाय एक हॉटफ़िक्स पर तैनात करने की लागत कुछ मुद्दों का कारण बनी।
तो जो सवाल आपको खुद से पूछना है वो हैं:
- मैं कितनी बार जारी करता हूं?
- क्या मेरी रिलीज़ 100% पिछड़ी संगत होगी?
- क्या मेरे ग्राहक बग्स को ठीक करने के लिए पूरी तरह अपग्रेड करने के साथ ठीक होंगे?
यदि आप अक्सर जारी करते हैं, तो शायद उनमें से प्रत्येक के लिए शाखाएं होना लायक नहीं है। हालाँकि, यदि आपका रिलीज़ चक्र मेरे पुराने उपयोग के मामले की तरह काफी लंबा है, और उस परिनियोजन, बैकवर्ड संगतता और पुराने रिलीज़ से जुड़े क्लाइंट जोखिम हो सकते हैं, तो विकल्प बी निश्चित रूप से आपको बहुत दर्द से बचाएगा, चीजों का समर्थन करने में बहुत आसान बना देगा। शाखा अव्यवस्था से निपटने की न्यूनतम लागत पर आपके ग्राहक।