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