के साथ एसवीएन का उपयोग करना मेरी टीम अपने स्रोत नियंत्रण को प्रबंधित करने के लिए एसवीएन का उपयोग कर रही है। मुझे यह देखने का कार्य दिया गया है कि क्या हम जिस तरह से एसवीएन का उपयोग करते हैं, उसमें सुधार करने के लिए वैसे भी है।बहु-रिलीज विकास
मैंने एसवीएन पुस्तक में से अधिकांश पढ़ा है और दूसरों ने एसवीएन का उपयोग करने के तरीके में बहुत सारे शोध किए हैं।
मैं एक सिंहावलोकन देने जा रहा हूं कि हम svn का उपयोग कैसे करते हैं और उम्मीद है कि किसी के पास मेरे लिए कुछ सुझाव हैं।
सबसे पहले, हमारे पास हर महीने या दो रिलीज़ होते हैं। तो वर्तमान में हम ट्रंक का उपयोग कोड की हमारी उत्पादन प्रति के रूप में करते हैं और हम प्रत्येक अनुसूचित डिलीवरी के लिए और प्रत्येक उत्पादन फिक्स के लिए एक रिलीज शाखा बनाते हैं।
हमारे पास आमतौर पर दो होते हैं, कभी-कभी तीन निर्धारित निर्धारित डिलीवरी एक ही समय में चलते हैं। उदाहरण के लिए मैं रिलीज 3 के लिए कोडिंग कर सकता हूं, लेकिन मैं या अन्य रिलीज 2 के लिए परीक्षण कर रहे हैं और रिलीज 1 के लिए अंतिम बग फिक्स कर रहे हैं। एक ही समय में एक उत्पादन फिक्स भी हो सकता है।
अभी हम शाखाओं (प्रत्येक रिलीज) को सिंक में रखने के लिए बहुत सारे विलय करते हैं। रिलीज 3 को 2 और 1 से कोड की आवश्यकता है, लेकिन हम स्पष्ट रूप से रिलीज 3 से रिलीज होने वाले नए कोड को नहीं चाहते हैं। इसलिए हम रिलीज 1 से रिलीज 2 और रिहाई 2 से रिलीज होने के लिए विलय की एक श्रृंखला करेंगे। रिलीज 3 पर कोडर के नियमित आधार पर दोहराया जाना होगा और 2 या 1.
जब भी कोई रिलीज या उत्पादन फ़िक्स उत्पादन में जाता है तो हम कोड को वापस ट्रंक में विलय करते हैं। फिर हम इसे सभी सक्रिय शाखाओं में ट्रंक (या रिलीज शाखा जो अभी उत्पादन में गए) से विलय करते हैं।
जैसा कि आपने देखा होगा कि हम विलय करने में बहुत समय व्यतीत करते हैं।
यह स्रोत नियंत्रण के नियंत्रण में व्यक्ति के लिए बहुत काम है। वे लगातार विलय कर रहे हैं और यह सुनिश्चित कर रहे हैं कि वे ट्रैक रखें कि किन शाखाओं को विलय कर दिया गया है।
ऐसा लगता है कि यह हमारे स्रोत नियंत्रण प्रबंधन प्रणाली के रूप में एसवीएन की तरह लगता है (मुझे पता है कि यह वास्तव में केवल संस्करण नियंत्रण है, लेकिन हम इसका उपयोग अपने स्रोत नियंत्रण को प्रबंधित करने के लिए कर रहे हैं) इसके साथ हमें मदद करने में सक्षम होना चाहिए।
उदाहरण के लिए, यह अगर डेवलपर रिलीज़ 3 पर काम कर रहा है जब कुछ रिलीज 2 पर बदल पता था कि बहुत अच्छा होगा, रिलीज 1, या ट्रंक और है कि डेवलपर स्वचालित रूप से अधिसूचित किया जा सकता है और वह में परिवर्तन लाने के लिए किसी मर्ज कर सकता है उसकी शाखा लेकिन इसके बजाय किसी को मैन्युअल रूप से सभी विलय करने के बारे में पता होना चाहिए ... ऐसा लगता है जैसे मनुष्य बहुत अधिक काम कर रहा है और मशीन पर्याप्त नहीं कर रही है।
क्या किसी के पास कोई विचार है कि हम एसवीएन की सुविधाओं का बेहतर उपयोग कैसे कर सकते हैं ताकि हम खुद को इस सिरदर्द में से कुछ बचा सकें, और सुनिश्चित कर लें कि हर कोई हमेशा कोड के संस्करणों के साथ काम कर रहा है!
धन्यवाद!
आपके संदर्भ में _release_ क्या है? सुविधाओं का एक निश्चित, निश्चित सेट जो __must__ को एक बैच में वितरित किया जाता है और समय सीमा कुछ हद तक लचीली होती है, या एक निश्चित, निश्चित समय सीमा जहां सुविधाओं में भिन्नता हो सकती है? –
निश्चित तिथि, यदि सुविधाओं को पूरा नहीं किया जा सकता है तो हम उन्हें अगली रिलीज पर धक्का देते हैं। वे एकीकृत रिलीज हैं, मेरा समूह केवल उन लोगों में से एक है जो एक ही शेड्यूल पर कोड जारी करते हैं। उत्पादन ठीक वैसे ही होता है जैसा वे करते हैं। हम उन्हें प्राथमिकता आदि के आधार पर अलग से उत्पादन के लिए धक्का देते हैं ... – kralco626