क्या Git Flow जैसी विलय की रणनीति वास्तव में एक विरोधी पैटर्न है?


30

मेरी कंपनी गिट का उपयोग कर रही है, और एक अजीब शाखा योजना का उपयोग कर रही है - काम मास्टर में किया जाता है, और शाखाएं रिलीज के लिए आरक्षित होती हैं। यह ठीक काम करता है, इसलिए जब तक एक पुनरावृत्ति में किए गए सभी कार्य इसे शाखा में नहीं कर देते हैं, लेकिन यदि एक महत्वपूर्ण उत्पादन मुद्दा सामने आता है, तो हमें यह सुनिश्चित करना होगा कि कार्य किसी भी तरह से दोनों शाखाओं में हो।

हाल ही में, हम उन शाखाओं के साथ कुछ "मज़े" कर रहे हैं। यह एक प्रशासनिक सिरदर्द रहा है, यह सुनिश्चित करते हुए कि सभी कार्य इसे प्रत्येक शाखा में बनाते हैं, और कुछ कीड़े जो एक शाखा पर तय किए गए हैं, वे इसे मास्टर में नहीं बनाते हैं जब तक कि कोई इसे इंगित नहीं करता है, जो संबंधित है।

मैं कुछ समय पहले Git Flow में आया था , और मुझे लगता है कि यह हमारी समस्या का समाधान होगा - कोड रिलीज़ होने के सभी तरीकों को समाप्त नहीं करेगा, या सभी तरह से वापस नीचे आएगा। एकमात्र पकड़ यह है कि मेरे नेतृत्व ने कहा कि इस प्रकार का विकास एक विरोधी पैटर्न था - दो सप्ताह के लिए उग्र रूप से विकसित करना, फिर मर्ज संघर्षों को हल करने के लिए तीन खर्च करना।

मुझे पूरी तरह यकीन नहीं है कि मैं सहमत हूं, और जब से मैंने इसे लाया, काम सामान्य की तरह फिर से शुरू हो गया है। केवल हाल ही में हमारे पास इसके साथ कुछ प्रमुख दर्द बिंदु हैं।

मैं जानना चाहता हूं - इस प्रकार की विकास योजना को एक प्रतिमान के रूप में क्यों देखा जाएगा? क्या यह वास्तव में एक विरोधी पैटर्न है?


1
टेड दिजुबा के पुराने ब्लॉगपोस्ट से "नियम 3" खंड यह वर्णन करने में मदद कर सकता है कि यह एक विरोधी पैटर्न कैसे हो सकता है।
Isxek

5
IMO, जितना अधिक वास्तविक समय आप संस्करण नियंत्रण के बारे में सोच रहे हैं, उतना ही यह गलत है कि पूरे उपयोगकर्ता के साथ गलत हो गया है - पहली जगह में उपकरण घटना।
एरिक रेपेन

@ErikReppen: मैं हर किसी के दिमाग को संस्करण नियंत्रण से दूर करना चाहता हूं और एक प्रक्रिया है जिसे हर किसी की आदत हो सकती है। इस तरह, हमें चीजों के बारे में चिंता करने की ज़रूरत नहीं है जैसे कि यह एक विरोधी पैटर्न है या नहीं।
मकोतो

6
@Makoto कोई भी चीज जो KISS का उल्लंघन करती है एक विरोधी पैटर्न, IMO है। यह वह जगह है जहां वीसीएस बिजली उपयोगकर्ता मुझे पागल बनाते हैं।
एरिक रेपेने

6
"एंटीपैटर्न" शब्द "सर्वश्रेष्ठ अभ्यास" की तरह है, जिसमें यह अक्सर लोगों के लिए अपने दिमाग को बंद करने के लिए एक बहाने के रूप में कार्य करता है। इस धारणा को स्वीकार न करें यदि लीड आपको स्पष्ट रूप से नहीं बता सकता है कि उसके पास क्या अनुभव है और यह क्यों खराब है।
Kyralessa

जवाबों:


30

वह ज्यादातर मॉडल की सुविधा शाखाओं की ओर इशारा कर रहा है। फ़ीचर शाखाओं को एक लंबे समय पहले एक एंटी-पैटर्न घोषित किया गया था जब शाखाएं महीनों तक चलती थीं और संस्करण नियंत्रण प्रणाली उनके जीवन को बचाने के लिए विलय नहीं कर सकती थी। एक या दो सप्ताह तक चलने developवाली फीचर शाखा में बहुत कम समस्याएँ होती हैं, खासकर यदि आप उस समय के दौरान फीचर शाखा में लगातार विलय कर रहे हैं । इससे अधिक लंबी कोई भी चीज अभी भी अनुशंसित नहीं है।

यहां तक ​​कि अगर आप गिट प्रवाह के सुविधा शाखा पक्ष का उपयोग नहीं करते हैं, तो अन्य भाग यह सुनिश्चित करने में उपयोगी हैं कि आपको स्वच्छ मर्ज मिलें और आपके परिवर्तन सही दिशा में प्रचारित हों।


3
फीचर शाखाओं के साथ मेरा अनुभव, या जिस तरह से हमने उन्हें किया है, वह यह है कि अगर उनके पास एक पुनरावृत्ति से अधिक के लिए रहने की अनुमति है, तो उनके साथ दिल का दर्द हो सकता है। एक नियम जिसमें कहा गया है कि रिलीज से पहले सभी विशेषताओं को पुनरावृत्ति में विलय कर दिया जाना चाहिए, विलय के दिल का दर्द को कम करने के लिए अच्छा होगा - और लड़के, क्या हम उन लोगों के पीछे कुछ गंभीर दिल का दर्द था ...
Makoto

6
मेरा अनुभव यह है कि जब तक आप इसे हाल के स्वामी के साथ विलय कर सकते हैं या उपयुक्त रूप में विकसित कर सकते हैं, तब तक आपके पास स्थानीय सामान लंबे समय तक पड़ा रह सकता है।
Jan Hudec

2
@Jaududec ... या जब तक आपके पास दो चीजें पड़ी रहती हैं, जो किसी तरह से परस्पर विरोधी होती हैं। आपको हमेशा इस बारे में अवलोकन करना चाहिए कि ...
johannes

5
उस पर थोड़ा-सा पढ़ने का काम करना, और मार्टिन फाउलर के संदर्भ से प्रतीत होता है कि निरंतर एकीकरण प्रवाह में की गई सुविधा शाखाएं काम कर सकती हैं - यदि वे छोटे काटने में किए जाते हैं तो ज्यादातर लोग उनके लिए क्या करेंगे। तो, एक अर्थ में, आप सही हैं - एक सुविधा शाखा पर समय-से-लाइव के रूप में दो सप्ताह से कम समय उपयुक्त लगता है। मैं नहीं देखता, हालांकि, सुविधा शाखाएं खुद को कैसे विरोधी पैटर्न हैं।
मकोतो

3
आप सही हे। वे केवल एक विरोधी प्रतिमान हैं जब वे विलय किए बिना बहुत लंबे समय तक रहते हैं। कभी-कभी लोग अभी भी एक विचार के खिलाफ रेल करते हैं जब उन्हें अंतर्निहित कारणों को याद नहीं होता है।
कार्ल बेवफेल्ड

21

विलय एक मज़ेदार बात है - जितना कम बार यह किया जाएगा उतना ही कठिन होगा, जितना कठिन होगा, उतना ही लोग इससे डरेंगे, कम बार वे इसे करेंगे।

समाधान या तो शाखाओं को बहुत अधिक विचलन करने की अनुमति नहीं देता है, या शाखाओं का उपयोग करने के लिए नहीं है।

यदि लोग इसे समझते हैं, तो आपको शायद मर्ज की अधिक समस्या नहीं होगी, यदि नहीं - हो सकता है कि शाखाएं कुछ शिक्षा के बिना एक अच्छा विचार नहीं हैं।


1
नहीं, शाखाओं का उपयोग नहीं करना एक गैर स्टार्टर है। दूसरा प्राथमिक मुद्दा यह होगा कि एक ही कोड में दो अलग-अलग जगहों पर काम किया जा सकता है, इसलिए उम्मीद है कि हम भी कुछ कर सकते हैं।
मकोतो

12
@ माकोतो, कोड में अक्सर चीजों को डिकूप करने से संघर्ष कम होता है। यह या तो फ़ंक्शन / कक्षाओं में कार्यक्षमता का सादा पृथक्करण हो सकता है या मॉड्यूल के बीच अनिर्धारित मान्यताओं से अधिक उच्च-स्तर से बच सकता है। फिर परिवर्तन अधिक स्थानीय हो जाते हैं।
मैक्सिम 1000

1
@ maxim1000 मैं सहमत हूं। मुझे लगता है कि किसी ने एक बार कुछ ऐसा कहा था जैसे "A VCS एक गरीब आदमी के लिए मॉड्यूलर [
डिकूप्ड

पहले पैराग्राफ के लिए +1। और हाँ, शिक्षा के बिना gitflow जैसी एक मृत अंत है
daitangio
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.