हमारे पास परीक्षण सूट के तीन सेट हैं:
- एक "छोटा" सुइट, जिसे चलाने में केवल कुछ घंटे लगते हैं
- एक "मध्यम" सुइट जिसमें कई घंटे लगते हैं, आमतौर पर हर रात (रात)
- एक "बड़े" सुइट जो चलाने के लिए एक सप्ताह + लेता है
हमारे पास छोटे परीक्षण सूट का एक गुच्छा है, लेकिन मैं यहां उन पर ध्यान केंद्रित नहीं कर रहा हूं।
वर्तमान कार्यप्रणाली ट्रंक के लिए प्रत्येक प्रतिबद्ध से पहले छोटे सूट को चलाने के लिए है। फिर, मीडियम सुइट हर रात चलता है, और अगर सुबह में यह विफल हो गया, तो हम अलग-अलग करने की कोशिश करते हैं कि कल के कौन से कमिट्स को दोष देना, रोलबैक करना है जो परीक्षण करते हैं और फिर से प्रयास करते हैं। एक समान प्रक्रिया, केवल रात की आवृत्ति के बजाय एक साप्ताहिक में, बड़े सुइट के लिए किया जाता है।
दुर्भाग्य से, मध्यम सूट बहुत बार विफल होता है। इसका मतलब है कि ट्रंक अक्सर अस्थिर होता है, जो जब आप संशोधन करना चाहते हैं और उनका परीक्षण करना चाहते हैं, तो बहुत कष्टप्रद है। यह कष्टप्रद है क्योंकि जब मैं ट्रंक से बाहर की जाँच करता हूं, तो मैं निश्चित नहीं कर सकता कि यह स्थिर है, और यदि कोई परीक्षण विफल हो जाता है तो मैं निश्चित नहीं जान सकता कि यह मेरी गलती है या नहीं।
मेरा सवाल यह है कि क्या इस तरह की स्थितियों को संभालने के लिए कुछ ज्ञात पद्धति है जो ट्रंक को हमेशा शीर्ष आकार में छोड़ देगी? उदाहरण के लिए "एक विशेष प्री-कमिटमेंट शाखा में कमिट करें, जो समय-समय पर ट्रंक को हर बार रात में गुजरने वाले समय में अपडेट करेगा"।
और इससे कोई फर्क नहीं पड़ता कि यह SVN की तरह एक केंद्रीकृत स्रोत नियंत्रण प्रणाली है या एक वितरित git जैसा है?
वैसे मैं चीजों को बदलने की सीमित क्षमता वाला एक जूनियर डेवलपर हूं, मैं सिर्फ यह समझने की कोशिश कर रहा हूं कि क्या इस दर्द को संभालने का कोई तरीका है जो मैं अनुभव कर रहा हूं।