ट्रंक के साथ मर्ज शाखा


119

TortoiseSVN का उपयोग करते हुए, मुझे उन परिवर्तनों को लेने की ज़रूरत है जो मैंने एक शाखा में किए हैं और फिर उन्हें ट्रंक के साथ विलय कर दिया है।

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

मूल रूप से, मैं चाहता हूं कि मेरी सूंड बिल्कुल शाखा की तरह दिखे।

पूर्व-svn दुनिया में, मैं सिर्फ अपनी शाखा फ़ोल्डर में फ़ाइलों की प्रतिलिपि बनाऊंगा, फ़ाइलों को ट्रंक फ़ोल्डर में हटा दूंगा, और फिर शाखा को ट्रंक में कॉपी करूंगा।

TortoiseSVN में, मैं कोशिश की है Reintegrate a branch, Merge a range of revisionsऔर Merge two different trees। कुछ भी नहीं वास्तव में ट्रंक को बदलने के लिए लगता है। मैंने ट्रंक के शीर्ष पर शाखा लगाने की भी कोशिश की है। यह मुझे एक त्रुटि देता है, कह रहा है कि ट्रंक पहले से मौजूद है।

जवाबों:


157

आपके मामले में:

  1. ट्रंक के लिए काम की प्रतिलिपि स्विच (SVN स्विच)
  2. शाखा को कार्यशील प्रति (SVN मर्ज) में मर्ज करें
  3. सुनिश्चित करें कि सब कुछ अभी भी संकलित और काम करता है
  4. काम की नकल (ट्रंक)
  5. शाखा को मारने पर विचार करें

एक टीम के माहौल में मैं आपको सुझाव दूंगा कि आप अपनी शाखा में ट्रंक से नवीनतम संशोधनों को मर्ज करें, सुनिश्चित करें कि सब कुछ संकलित करता है और काम करता है, फिर उपरोक्त चरणों को करें (जो कि आपके द्वारा पहले ही परिवर्तनों का परीक्षण करने के बाद से तुच्छ हो जाएगा)।


अपडेट करें

चरण 5 में, मैंने शाखा को मारने का उल्लेख किया है। ऐसा इसलिए है क्योंकि एक बार एक फीचर से एक शाखा ट्रंक में है, इसे ट्रंक का हिस्सा माना जाना चाहिए। उस स्थिति में शाखा को मार दिया जाना चाहिए ताकि कोई उस पर काम न करे। यदि उस सुविधा के लिए प्रमुख संशोधनों की आवश्यकता है, तो आपको उसके लिए एक नई शाखा बनानी चाहिए।

केवल वे शाखाएँ जिन्हें मैं नहीं मारता, वे रखरखाव और रिलीज़ शाखाएँ हैं, जब तक कि कोई विशेष रिलीज़ अब समर्थित नहीं है।

कोई फर्क नहीं पड़ता कि, आपके पास हमेशा हर संशोधन तक पहुंच है, इसलिए एक शाखा को मारना केवल अन्य डेवलपर्स को एक मृत शाखा पर विकसित करने से रोकने के लिए उपयोग किया जाता है।


चरण 5 के अंतर्गत आपने जो टिप्पणी जोड़ी है वह शायद चरण 1 बेहतर हो सकती है? जब आप TortoiseSVN मर्ज संवाद से "एक शाखा को फिर से संगठित करना" का उपयोग करना चाहते हैं, तो पहले ट्रंक (या बेस शाखा) से सभी परिवर्तनों को मर्ज करना एक आवश्यकता है।
jbvo

1
पहला कदम (ट्रंक को काम करने वाली कॉपी स्विच करें) केवल आवश्यक है अगर एक अलग शाखा और ट्रंक काम करने वाली कॉपी नहीं है?
जेफ बी

1
मुझे लगता है कि विस्तार का एक बड़ा टुकड़ा जो यहां गायब है वह वह है जो आप प्रत्येक चरण के लिए क्लिक करते हैं, इसलिए आप प्रत्येक चरण का संदर्भ जानते हैं।
मैकगाइवर

10

मुझे लगता है कि TortoiseSVN 1.8.5 में, मर्ज | दो अलग-अलग पेड़ों को जोड़ने का काम करना चाहिए। जब आप किसी शाखा / टैग को वापस ट्रंक में मर्ज करते हैं, तो ट्रिक यह है कि From URL ट्रंक है और TO टैग / शाखा है। अजीब लेकिन सच है।

स्रोत: विलय

उन निर्देशिकाओं के लिए जो आपकी कार्यशील प्रति में नहीं हैं, लेकिन टैग / शाखा में हैं, तो आपको विरोधाभासी त्रुटियां मिल सकती हैं। बस संघर्ष को स्वीकार करें और विलय को फिर से करें।


कछुआ साइट पर निर्देशों का पालन करने के बाद, सुनिश्चित करें कि मर्ज के बाद, आप कुछ भी संशोधित किए बिना ट्रंक को प्रतिबद्ध करते हैं। मैंने कुछ चीजों को अनचेक करने की कोशिश की, जो मैं प्रतिबद्ध नहीं था जो कुछ गैर-पुनरावर्ती प्रतिबद्ध चेतावनी दे रहा था। साथ ही, निर्देश के अनुसार शाखा को हटाने पर विचार करें।
गोकु_डा_मास्टर १६'१६ को २२

6

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

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


2
फाइलों की "नकल" के साथ बहुत सावधानी बरतनी चाहिए। छिपे हुए svn निर्देशिकाओं को दूषित करने से बचने के लिए TortoiseSVN के निर्यात जैसी किसी चीज़ का उपयोग करें।
मिलीमीटर

3

मैं TortoiseSVN 1.9.3, Build 27038 का उपयोग कर रहा हूं।

शाखा को ट्रंक में विलय करने के लिए नीचे दिए गए चरणों का पालन करें।

1) ट्रंक वर्किंग कॉपी पर राइट क्लिक करें और नीचे दिए गए विकल्प का चयन करें।

यहां छवि विवरण दर्ज करें

2) ट्रंक में ब्रांच मर्जिंग के मामले में दूसरा विकल्प जैसा कि नीचे दिखाया गया है और अगले पर क्लिक करें

यहां छवि विवरण दर्ज करें

3) From: फ़ील्ड में ट्रंक का पूर्ण फ़ोल्डर URL दर्ज करें। यह गलत लग सकता है, लेकिन याद रखें कि ट्रंक वह शुरुआती बिंदु है जिसे आप शाखा परिवर्तन जोड़ना चाहते हैं। To: फ़ील्ड में सुविधा शाखा का पूरा फ़ोल्डर URL दर्ज करें।

यहां छवि विवरण दर्ज करें

4) अगला क्लिक करें और परीक्षण मर्ज करें

यहां छवि विवरण दर्ज करें

5) यदि टेस्ट मर्ज सफल है, तो मर्ज बटन पर क्लिक करें।

6) एक बार मर्ज सफल हो जाए तो ट्रंक पर बदलाव करें।

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