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