तोड़फोड़ में, मुझे अपने आवेदन का एक नया प्रमुख संस्करण कैसे सेट करना चाहिए?


10

मैं अपने व्यावसायिक अनुप्रयोग के नए संस्करण (संस्करण 4) पर काम शुरू करने वाला हूं। मैं तोड़फोड़ का उपयोग करता हूं।

आपके अनुभवों, गलतियों, और सफलताओं के आधार पर, आप मुझे कैसे तोड़फोड़ में नया संस्करण स्थापित करने की सलाह देंगे?

यहां कुछ जानकारी दी गई है: मैं संस्करण 4 जारी होने के बाद कुछ समय के लिए संस्करण 3 में महत्वपूर्ण अपडेट जारी करना चाहता हूं। हालाँकि नई सुविधाओं का सभी विकास पूरी तरह से संस्करण 4 में होगा।

मामले में यह प्रासंगिक है: मैं इस उत्पाद पर एक एकल डेवलपर हूं, और यह मामला बने रहने की संभावना है।

संपादित करें: मैं SVN के टैग और शाखाओं से अवगत हूँ। मुझे लगता है कि मुझे अपनी स्थिति में टैग और शाखाओं का उपयोग करने के लिए एक इष्टतम रणनीति की आवश्यकता है।

जवाबों:


8

आप जो करना चाहते हैं, वह शाखाएँ बनाना है । जब आप इसे जारी करते हैं, तो यह आपके स्रोत पेड़ में एक शाखा लगता है, आमतौर पर आपके स्रोत की एक प्रति । आप महत्वपूर्ण अपडेट के लिए इस शाखा में शामिल होंगे , और इस शाखा से अपडेट का निर्माण करेंगे।

अभी जो आप शुरू कर रहे हैं वह होगा trunkऔर आप संस्करण 4 को वहां कोडित करेंगे । यदि संस्करण 3 में कोई बड़ा परिवर्तन किया जाता है, और आप इसे संस्करण 4 में रखना चाहेंगे, तो आप ट्रंक पर परिवर्तनों को लाने के लिए शाखा (v3) से ट्रंक (v4) में एक मर्ज करेंगे ।

आप उन टैग्स को भी देख सकते हैं , जो शाखाओं की तरह हैं, लेकिन किसी एक संस्करण से लिंक करते हैं, आमतौर पर किसी संस्करण का अंतिम संशोधन (या पहले)।


पिछले संस्करण की एक शाखा बनाते समय, आप अपने द्वारा बनाए गए प्रत्येक अपडेट / रिलीज़ के लिए एक टैग भी बना सकते हैं। इस तरह आपके पास करने के लिए एक शाखा है, और आप अपने द्वारा किए गए किसी भी पिछले रिलीज़ को बनाने के लिए टैग का उपयोग कर सकते हैं।
गीर्टेन

Svn में IIRC टैग आवश्यक रूप से एकल संस्करणों से लिंक नहीं करते हैं, वे वास्तव में सभी में शाखाओं के समान हैं लेकिन इंटेंसिटी
जेके।

वास्तव में, शाखाएं और टैग कार्यान्वयन में समान हैं, वे अनिवार्य रूप से कोड की प्रतियां हैं। यह केवल कन्वेंशन में है कि वे भिन्न हैं, टैग एक विशेष संशोधन को इंगित करने के लिए हैं, जबकि शाखा को एक वैकल्पिक विकास पथ माना जाता है।
कार्तिक टी

3

निर्भर करता है।

आप संस्करण 4 को ट्रंक में रख सकते हैं और V4 पर विकास जारी रख सकते हैं। संस्करण 3 एक शाखा होगी, जिसे आप आवश्यकतानुसार अपडेट करेंगे। इस दृष्टिकोण का लाभ यह है कि यदि V3 में एक महत्वपूर्ण समस्या की खोज की गई थी जो V4 में भी है, तो आप शाखाओं पर फ़ाइल (एस) पर एक साधारण मर्ज कर सकते हैं।

अन्य विकल्प V4 के लिए नया रिपोजिटरी बनाना और बनाना है। यह आपको एक नई शुरुआत देगा। नकारात्मक पक्ष यह है कि परिवर्तन इतिहास रीसेट हो गया है और आप फ़ाइलों को तोड़फोड़ के माध्यम से मर्ज नहीं कर पाएंगे। आपको बदलावों में विलय करने की तुलना में एक कार्यक्रम का उपयोग करना होगा।

व्यक्तिगत रूप से मैं पहले दृष्टिकोण के साथ रहना होगा। एक V3 शाखा बनाएं और इस शाखा में कोड और अपडेट बनाए रखें। नए V4 कोड को ट्रंक में विकसित किया जा सकता है।


2

मुझे इस स्थिति के लिए एक उत्कृष्ट मार्गदर्शक मिला :

If you want to be able to both develop a newer version (in trunk) and 
fix bugs on an older version, what you want is a branch for the older 
version. You can fix your bug in the older version's branch, then 
make a new tag of that. 
Example: 
/repo/ 
        project/ 
                trunk/ 
                branches/   
                tags/ 
You've developed your software in trunk and are now ready to call it 
version 1.0. You make a branch and a tag: 
svn cp $REPO/project/trunk $REPO/project/branches/1.x 
svn cp $REPO/project/branches/1.x $REPO/project/tags/1.0 
/repo/ 
        project/ 
                trunk/ 
                branches/ 
                        1.x/    
                tags/ 
                        1.0/ 
Now you continue to develop in trunk, adding new features, and this 
will eventually become version 2.0. But while you're doing this, you 
find a bug in 1.0 and need to fix it quick. So you check out branches/ 
1.x, make the change, test it, and commit it. Then you tag that as 1.1: 
svn cp $REPO/project/branches/1.x $REPO/project/tags/1.1 
/repo/ 
        project/ 
                trunk/ 
                branches/ 
                        1.x/    
                tags/ 
                        1.0/ 
                        1.1/ 
If the bug also exists in trunk, then you need to port your bugfix to 
trunk. "svn merge" can help you there. 
cd trunk-wc 
svn merge -c$R $REPO/project/branches/1.x . 
where $R is the revision in which you fixed the bug on the 1.x 
branch. Now you test the fix in trunk and then commit it. Now the bug 
is fixed in trunk too. 

0

आप जिस चीज के बारे में पूछ रहे हैं वह उपयोग करने के लिए शाखा (और मर्ज) रणनीति है। तो कार्तिक टी की पोस्ट लें और इसे एक रेसिपी के रूप में लें।

कुछ पृष्ठभूमि के लिए, निम्नलिखित संसाधन पढ़ें:

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