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