svn - ऑनल - स्थलीय कछुआ




कछुआ एसवीएन दो शाखाएं मर्ज करता है (2)

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

एक मर्ज किसी विशेष शाखा का डुप्लिकेट नहीं है। मर्जिंग आमतौर पर तीन तरह के ऑपरेशन है। आपके पास शाखा है जिसे आप मर्ज कर रहे हैं (जिसे आपकी कहा जाता है) जिस शाखा से आप विलय कर रहे हैं (जिसे उनकी कहा जाता है ) और अंतिम आम पूर्वज (एलसीए) हैं। वह आखिरी एक महत्वपूर्ण है

यदि आपकी शाखा में कोई बदलाव आया है, तो मर्ज प्रक्रिया के दौरान इसे छुआ नहीं है। मर्ज एल्गोरिथ्म यह जानता है क्योंकि आपके और एलसीए के बीच अंतर है। यदि एलसीए और उनके बीच अंतर है , तो उस बदलाव के लिए माना जाता है

अगर मैं समझता हूं कि आपके पास है:

  • branch1 1 को ट्रंक से लिया गया था
  • branch2 को branch2 1 से लिया गया था

आप क्या मर्ज करने की कोशिश कर रहे हैं? क्या आप दोनों branch2 branch1 और branch2 को ट्रंक में मर्ज करना चाहते हैं। यह संभव हो सकता है कि यदि आप trunk को सबवर्सन के माध्यम से branch2 branch1 में प्रतिलिपि branch1 और branch1 branch2 माध्यम से branch1 में कॉपी branch1 जाता है। इस तरह, सबवर्जन जानता है कि दोनों शाखाएं उनके इतिहास से संबंधित हैं

यदि आपने शाखा बनाई है, तो फाइलों की प्रतिलिपि बनाने के लिए विंडोज का इस्तेमाल किया है, और फाइलें जोड़ दी हैं, आपके पास दो शाखाओं के बीच कोई इतिहास नहीं है, और विलय अधिक कठिन है।

क्या branch2 में branch2 में परिवर्तन मर्ज करना ठीक है? यदि हां, तो मैं ऐसा कुछ करूँगा:

  • चेकआउट branch2
  • branch2 में branch2 मर्ज करें और उन परिवर्तनों को करें। branch2 में सभी परिवर्तन होंगे 1
  • चेकआउट trunk
  • branch2 को trunk में मिलाएं। ट्रंक अब दोनों branch2 branch1 और branch1 में सभी परिवर्तन branch1

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

मैंने "दो अलग-अलग पेड़ मर्ज" विकल्प का प्रयास किया और "से:" और "प्रति:" में दो शाखाओं में प्रवेश किया। मैंने दोनों पर हेड रेविजन लिया मैंने बाकी सब कुछ डिफ़ॉल्ट में छोड़ दिया (गहराई मर्ज करें: वर्किंग कॉपी, व्हाइटस्पेस की तुलना करें, बाकी सब कुछ अनियंत्रित)


From URL विकल्प से, आपको उस शाखा को निर्दिष्ट करना चाहिए जिसमें आप मर्ज करना चाहते हैं।

उदाहरण के लिए, मान लें कि 2 शाखाएं, शाखा A और शाखा B , और आप शाखा B से शाखा A को मर्ज करना चाहते हैं। TortoiseSVN में, Merge विकल्प पर क्लिक करें और फिर Merge two different trees विकल्प Merge two different trees करें चुनें। From URL , कृपया शाखा A और यूआरएल में यूआरएल का उल्लेख करें, शाखा B का यूआरएल का उल्लेख करें। यह किसी भी फाइल को खोए बिना शाखा B से शाखा A को मर्ज करना चाहिए।





branch