बग-उप गिट्ट-प्रवाह मॉडल में कहां जाते हैं?


15

आमतौर पर, के रूप में जाना जाता है, Git- प्रवाह मॉडल हॉटफ़िक्स अपनी विशिष्ट hotfix-*शाखा में जाते हैं और release-*शाखा में जाने से पहले छोटे एकीकरण ठीक करते हैं । पिछले संस्करण से सामान्य बगफिक्स के पास जगह नहीं है।

वे कहां दिखाई दें? वे ( शाखाओं की तरह ) bug-*की शाखा में अपनी शाखा में होना चाहिए ?developfeature


3
जारी किए गए कोड में एक गैर-महत्वपूर्ण बग एक छोटी सी सुविधा से भिन्न व्यवहार का उत्पादन करने के लिए अलग-अलग व्यवहार क्यों करेगा जो वर्तमान में आवेदन करता है?
बार्ट वैन इनगेन शनाउ

@BartvanIngenSchenau क्या आप उन्हें feature-*शाखा होने की सलाह दे रहे हैं ? क्या एक त्रुटिपूर्ण व्यवहार को एक विशेषता के रूप में देखा जा सकता है?
जूता

1
@ मुझे लगता है कि बार्ट का मतलब क्या है कि आपको उन्हें सुविधाओं के रूप में व्यवहार करना चाहिए, जरूरी नहीं कि एक ही शाखा उपसर्ग का उपयोग करना चाहिए ।
डार्कहॉग

3
@Shoe: Git प्रवाह, को छोड़कर किसी भी शाखा में master, develop, release-*या hotfix-*एक सुविधा शाखा है, तो आप की तरह किसी भी उपसर्ग आप का उपयोग करें और कीड़े के लिए एक अलग उपसर्ग का उपयोग कर सकते है। इसके अलावा, गलत व्यवहार के बीच अंतर क्या है जो निर्दिष्ट और गलत व्यवहार के रूप में काम करता है जो विनिर्देश से भटकता है? दोनों ही मामलों में यह त्रुटिपूर्ण व्यवहार है, लेकिन केवल अंतिम एक बग है।
बार्ट वैन इनगेन शेनौ

जवाबों:


9

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


बार्ट वैन इनगेन शेनॉ की टिप्पणी एक अच्छी बात सामने लाती है।

Gitflow की पाँच शाखाएँ हैं : master,, developहॉटफ़िक्स शाखाएँ (उपसर्ग के साथ hotfix-), रिलीज़ शाखाएँ (उपसर्ग के साथ release-, और फ़ीचर शाखाएँ।) masterऔर developशाखाएँ लंबी-चलने वाली शाखाएँ हैं और आप इनमें सीधे प्रतिबद्ध नहीं हैं। release-शाखाएँ एक रेखा खींचने के लिए बनाई जाती हैं। किसी विशेष रिलीज़ के लिए और फिर अगले संस्करण और रिलीज़ की पहचान के बीच बग फिक्स का समर्थन करते hotfix-हैं । शाखाएं विशेष रूप से महत्वपूर्ण, आउट-ऑफ-साइकल रिलीज़ के उत्पादन के feature-लिए होती हैं । शाखाएं कुछ भविष्य के रिलीज़ के लिए व्यक्तिगत विशेषताओं के विकास के लिए होती हैं।

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

आपके विशेष मामले में, एक release-शाखा उपयुक्त जगह नहीं है। सॉफ्टवेयर पहले ही जारी किया जा चुका है master। एक बार एक रिलीज को मास्टर में मिला दिया जाता है और वहां टैग किया जाता है, उस विशेष रिलीज के लिए रिलीज शाखा ने अपने उद्देश्य को रेखांकित किया है और जरूरी नहीं कि अब और मौजूद हो। यदि आप अपनी शाखाओं की सफाई में सक्रिय हैं (जो मुझे लगता है कि हर किसी को होना चाहिए), तो यह भी एक विकल्प नहीं है।

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

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


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

@ कोई नया प्रश्न अच्छा होगा, लेकिन अगर आप इसे पोस्ट करते हैं, तो कृपया बताएं कि यह फिक्स इतना महत्वपूर्ण क्यों है कि इसे दोनों में विलय करने की आवश्यकता है - ऐसा लगता है कि इसे शुरू करने से पहले महत्वपूर्ण मुद्दा नहीं मिला था develop, नहीं यह शुरू होने के समय और रिलीज़ शाखा के निर्माण के बीच पाया गया, और / या आपकी रिलीज़ शाखा लंबे समय तक मौजूद है। बस, हालांकि, मेरा मानना ​​है कि एकमात्र विकल्प चेरी-पिक है (मैं रिलीज शाखा में एक फिक्स और पुल अनुरोध का सुझाव दूंगा, रिलीज शाखा में विलय करूंगा, और चेरी-पिक को पुल अनुरोध के माध्यम से विकसित किया जा सकता है)।
थॉमस ओवेन्स

5

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

Git-flow के लेखक की एक टिप्पणी यह ​​भी है कि आप जो पूछ रहे हैं, वह ठीक है: बगिंग शाखाएँ # 24 गुम


धन्यवाद, आपके द्वारा साझा की गई लिंक ने मेरे लिए इसे साफ़ कर दिया है।
आर्केल्डन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.