"फीचर शाखाएं" तब होती है जब प्रत्येक सुविधा अपनी शाखा में विकसित होती है और केवल परीक्षण के दौरान मुख्य लाइन में विलय हो जाती है और जहाज के लिए तैयार होती है। यह उत्पाद मालिक को उन सुविधाओं को चुनने की अनुमति देता है जो किसी दिए गए शिपमेंट में जाते हैं और "पार्क" सुविधा के लिए जो भाग लेते हैं, यदि अधिक महत्वपूर्ण काम आता है (उदाहरण के लिए ग्राहक शिकायत करने के लिए एमडी को फोन करता है)।रिफैक्टरिंग के साथ संगत "फीचर शाखाओं" का उपयोग कर रहा है?
"रिफैक्टरिंग" कोड बदलाव ला रहा है इसकी डिजाइन में सुधार करने के इतनी के रूप में परिवर्तन की लागत को कम करने के लिए। इसे लगातार किए बिना आपको उलझन कोड बेस मिलते हैं जो परीक्षण लिखना अधिक कठिन होता है।
वास्तविक जीवन में वहाँ हमेशा ग्राहकों बेचा नई सुविधाओं और राजनीति की वजह से किया गया है कि कर रहे हैं सभी ग्राहकों को देखने के लिए कि प्रगति पर सुविधाओं में से "अपने" समूह बनाया जा रहा है है। तो यह बहुत ही कम है कि शाखाओं पर बैठे आधा तैयार सुविधाओं के बिना एक समय है।
यदि कोई रिफैक्टरिंग किया गया है, तो "फीचर शाखाओं" में विलय करना असंभव नहीं होने पर बहुत कठिन हो जाता है।
क्या हमें किसी भी रिफैक्टरिंग करने में सक्षम होने पर छोड़ देना है?
यह भी देखें "How do you handle the tension between refactoring and the need for merging?"
XP पैनजैंडम केवल एक कोडलाइन होने के बारे में अशिष्ट हैं। मुझे यकीन नहीं है कि यह समझना कितना व्यवहार्य है कि अभ्यास में (मुझे लगता है कि आपको प्रत्येक समर्थित रिलीज के लिए एक ट्रंक प्लस रखरखाव शाखा की आवश्यकता हो सकती है, जिसका अर्थ है कम से कम दो कोडेलिन), लेकिन यह निश्चित है कि वे आपके साथ सहमत हैं। –
मैं निश्चित रूप से रखरखाव शाखाओं के पक्ष में हूं (मैं उन्हें "रिलीज शाखाएं" कहता हूं)। और मुझे यह भी लगता है कि कुछ परिदृश्य हैं जहां एक सुविधा शाखा को उचित ठहराया जा सकता है। मैं ज्यादातर "हमेशा फीचर शाखाएं बनाने का विरोध करता हूं ताकि प्रबंधक तय कर सकें कि कौन सी विशेषताओं को एक विशेष रिलीज में जाना है" दृष्टिकोण क्योंकि यह कोड बेस को बहुत अधिक टुकड़ा करता है। मेरा विश्वास करो, मैं कोई XP fanboy नहीं हूं, लेकिन मुझे लगता है कि एक कोड लाइन की इच्छा के पीछे सिद्धांत ध्वनि हैं। –
मुझे लगता है कि यह टूलींग पर भी निर्भर करता है, चाहे शाखाएं और पुनर्गठन उच्च लागत हों। उपद्रव कुछ हद तक परेशान है जबकि गिट इसे बहुत अच्छी तरह से हल करता है (शाखा/विलय मूल अवधारणा है, बेहद तेज़)। शाखाकरण के लिए मुख्य सवाल यह है: "क्या मुझे अलगाव की आवश्यकता है, पुनर्गठन लागत कितनी होगी?"। मुझे लगता है कि दोनों चरम सीमाएं ("कभी शाखा नहीं", "हमेशा हर मामूली परिवर्तन के लिए शाखा") गलत हैं। यह वास्तव में निर्भर करता है ... –