2010-08-25 17 views
13

मेरे पास एक ही प्रोजेक्ट की दो कार्यशील प्रतियां हैं, प्रत्येक एक अलग शाखा में स्विच की गई हैं। क्या एक परियोजना में स्थानीय कार्यों को अन्य कामकाजी प्रतिलिपि में मर्ज करना संभव है?एसवीएन: अन्य परिवर्तन प्रतिलिपि में स्थानीय परिवर्तनों को मर्ज करें

उत्तर

17

आप दो अलग-अलग काम करने वाली प्रतियों को मर्ज नहीं कर सकते हैं, लेकिन कुछ चीजें हैं जो आप कर सकते हैं।

यदि मौजूदा फ़ाइलों में परिवर्तन किए जाते हैं, तो सबसे आसान तरीका svn diff के साथ पैच बनाना है, और उसके बाद उस पैच को अन्य कार्यशील प्रतिलिपि पर लागू करें। उदाहरण के लिए। पहले कामकाज में कॉपी कर लें:

svn diff > patch 

और फिर आप एक दूसरे में लागू:

patch -p0 < patch 

और हमेशा की तरह आप यकीन है कि यह पहले से काम करता है बनाने के लिए --dry-run विकल्प के साथ patch चलाना चाहते हैं ।

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

+0

क्या 'पैच' भी एक svn कमांड है? ऐसा लगता है कि यह मेरी विंडोज मशीन पर स्थापित नहीं है। – Mot

+0

नहीं, पैच पैच फ़ाइलों को लागू करने के लिए सिर्फ एक सामान्य उपकरण है। आप इसे यहां विंडोज़ के लिए प्राप्त कर सकते हैं: http://gnuwin32.sourceforge.net/packages/patch.htm –

+4

यदि आप TortoiseSVN का उपयोग करते हैं तो आप TortoiseSVN दायाँ क्लिक मेनू से पैच कर सकते हैं। –

1

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

संबंधित मुद्दे