जिस परियोजना में एक से अधिक प्रमुख संस्करण बनाए रखे जा रहे हैं, उन पर प्रभावी ढंग से git-flow का उपयोग कैसे किया जा सकता है?


18

मैं अपने कई प्रोजेक्ट्स को माइग्रेट फ्लो वर्क फ्लो पर माइग्रेट कर चुका हूं , और मैं इसे प्यार कर रहा हूं। हालाँकि, मुझे एक सबसे अच्छा अभ्यास नहीं मिला है जो एक परियोजना के साथ काम करते समय चीजों को सुचारू रूप से बहता रहता है जिसमें एक समय में एक से अधिक प्रमुख संस्करण बनाए रखे जाते हैं।

विशेष रूप से, मैं "निशुल्क संस्करण" और "सशुल्क संस्करण" या किसी अन्य समानांतर मॉडल को बनाए नहीं रख रहा हूं, मैं एक ऐसी परियोजना के बारे में बात कर रहा हूं जिसमें संस्करण 1 जारी किया गया है, और मामूली संस्करणों (1.1, 1.2, आदि) के साथ समर्थित है। ।) जब तक संस्करण 3 जारी नहीं किया गया है, तब तक 2 और 3 को बनाए रखा जाएगा, जब तक कि 4 जारी नहीं किया जाता है ... आपको विचार मिलता है।

आपके पास, या आप प्रोजेक्ट के दो या अधिक समर्थित संस्करणों को एक बार gitflow वर्कफ़्लो में कैसे बनाए रख सकते हैं?


मेरे पास कोई उदाहरण नहीं है, लेकिन जिन परियोजनाओं के बारे में मुझे पता है, वे अलग-अलग प्रमुख संस्करणों के लिए अलग-अलग रिपॉजिटरी का इस्तेमाल करती हैं, और एक से दूसरे में बैकपैक पैच।
प्रोडिग्सीम

@ProdigySim: डेटा बिंदु के लिए धन्यवाद, लेकिन क्या यह सिर्फ मुझे या उस ओवरहेड को ट्रैक करने और प्रबंधित करने के लिए एक निश्चित राशि जोड़ देगा?
हेजमैज

@ProdigySim मुझे संदेह है कि उन परियोजनाओं में git की ब्रांचिंग और विलय क्षमताओं के साथ एक उपकरण का उपयोग नहीं किया गया था।
रीन हेनरिच्स

@ राइन वे मर्क्यूरियल का उपयोग करते हैं। मुझे नहीं लगता कि सॉफ्टवेयर के समानांतर प्रमुख संस्करणों को ट्रैक करने के मामले में ब्रांचिंग बहुत साफ होगी।
प्रोडिजीसिम

तब मेरा शक सही निकला। और हां, यह काफी साफ है अगर आपका टूल इसे ठीक से सपोर्ट करता है। git और Linux कर्नेल दोनों इसे इस प्रकार करते हैं।
रीन हेनरिक्स

जवाबों:


10

man gitworkflows, 'git flow' वर्कफ़्लो के भव्य डैडी, सामान्य git वर्कफ़्लो दिशानिर्देशों का वर्णन करते हैं; के उपयोग pu, next, masterऔर maintशाखाओं; और कैसे maintप्रबंधित किया जाता है। यदि आपके पास कई रखरखाव शाखाएं हैं, तो आप उन्हें नाम दे सकते हैं, उदाहरण के लिए maint/1.x, maint/2.xऔर इसके आगे।

कुंजी इतनी नहीं है कि git कमांड का उपयोग कैसे करें, बल्कि एक उचित प्रक्रिया का निर्माण कैसे करें। तय करें कि आपके लिए कौन सी चीजें महत्वपूर्ण हैं (बैकपोर्टिंग में आसानी?) और उन बाधाओं को संतुष्ट करने वाले वर्कफ़्लो का निर्माण (और दस्तावेज़)।


लेकिन क्या यह सवाल का जवाब देता है? अर्थात्, git-flow एक लचीली रिलीज़ मॉडल का समर्थन करता है जैसा कि प्रश्न में वर्णित है, या क्या कोई वापस मूल git कमांड पर वापस आता है? ("gitworkflows" मूल git वर्कफ़्लो उपयोग, पूर्व git-flow का वर्णन करता है।) git-flow / शाखा प्रक्रियाओं को सरल बनाने के लिए Git-flow का निर्माण (तीव्रता से) किया गया था, इसलिए टीमें (git-fu prowess की बदलती डिग्री के साथ) कोडिंग और पर ध्यान केंद्रित कर सकती थीं। समय लेने वाली "गलत-विलय" गलतियों से बचें। क्या v1.2 को बनाए रखने और विकसित करने के लिए w / git-flow संभव है। v2.5 एक ही समय में {1,2,3, ..}। {1,2,3, ...}? शायद w / दीर्घकालिक रिलीज शाखाएं? या मास्टर 1, मास्टर 2, ...?
माइकल

0

मूल रूप से, आप डुप्लिकेट हैं master, releaseऔर developहर प्रमुख संस्करण आप को बनाए रखने के लिए कर रहे हैं शाखाओं। वे एक-दूसरे के साथ कैसे बातचीत करते हैं यह एक समान रहता है। के लिए featureशाखाओं, बस शाखा यह सुनिश्चित कर लें से सबसे पुराना शाखा तुम वापस मर्ज करने का इरादा में है, जो अवांछित निर्भरता में खींच रोकता है। फिर जब आप अपनी featureशाखा को वापस मर्ज करते हैं , तो आप प्रत्येक उपयुक्त नए प्रमुख संस्करण शाखा में अतिरिक्त मर्ज करते हैं।


1
हर जारी संस्करण को शामिल करने के लिए मास्टर की पूरी बात नहीं है ?
हेजमैज

@ हेजमैज, एक अधिक रैखिक रिलीज चक्र में यह मामला है, लेकिन यह समानांतर प्रमुख संस्करणों के लिए अत्यधिक अव्यावहारिक है।
कार्ल ब्वेलफेल्ट

यह सबसे अधिक व्यावहारिक समाधान की तरह लगता है, जब तक कि कुछ ट्राइसेप्स का उपयोग करने वाले ट्रू-ट्रू ट्रिक या ऐसा नहीं है, जो मुझे पता नहीं है। मैं git-flow को शुरू करने का एक तरीका खोज रहा हूँ और फिर भी (एक दुर्भाग्यपूर्ण पूर्वापेक्षा के रूप में) हमारे मौजूदा रिलीज़ मॉडल को बनाये रख सकता हूँ, जहाँ हमें पुराने रिलीज़ (सिर्फ हॉटफ़िक्स नहीं) को बनाए रखना / विकसित करना है। तो v5.1.x चारों ओर चिपक जाएगा (w / नई सुविधाओं को जोड़ा, बग्स तय, आदि) v6.1.x जारी होने के कुछ साल बाद। लगभग 2-3 प्रमुख संस्करण किसी भी समय समर्थित और विकसित हुए हैं। लेकिन बग फिक्स प्रत्येक संस्करण पर लागू किया जाना चाहिए जहां बग मौजूद है।
माइकल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.