2012-02-10 13 views
19

मर्ज करने पर आने वाले जोड़ों को मैं निम्नलिखित मूल वृक्ष संघर्ष में आया हूं: स्थानीय जोड़, विलय पर आने वाली जोड़।वृक्ष संघर्ष को हल करने के लिए 'उनके-संघर्ष' को कैसे स्वीकार करें: स्थानीय जोड़,

मुझे पता है कि हम इसे हल करने के लिए svn resolve --accept working file का उपयोग कर सकते हैं, लेकिन एसवीएन मुझे आने वाले संस्करण को स्वीकार करने के लिए accept their-conflict का उपयोग करने से रोकता है।

क्या कोई मुझे बता सकता है कि आने वाली एक व्यक्ति द्वारा मेरी स्थानीय फ़ाइल को कैसे बदला जाए? क्या यह किसी भी तरह से svn resolved file का उपयोग कर संभव है?

+0

एक विकल्प है कि आपकी स्थानीय फ़ाइल को रास्ते से बाहर ले जाएं, 'svn update' करें, अपनी फ़ाइल को वापस रखें, और फिर' svn commit' करें। यह संभवतः यह करने के लिए "सही" तरीका नहीं है, लेकिन एसवीएन आदेशों के साथ खेलने से शायद यह बहुत आसान है। – aroth

+0

@aroth, ये फ़ाइलें पहले से ही ट्रंक और शाखा दोनों में मौजूद हैं (पृष्ठभूमि: मैं शाखा को साप्ताहिक रूप से ट्रंक करने के लिए विलय करता हूं), वास्तव में, मैं शाखा में एक को ट्रंक में एक को ओवरराइट करने के लिए उपयोग करना चाहता हूं, जैसा कि आपने कहा था, मुझे चाहिए इन फ़ाइलों को ट्रंक में हटाने के लिए, फिर प्रतिबद्ध करें, फिर उन्हें शाखा से विलय करें, है ना? –

+0

क्या आपने अपनी समस्या का समाधान किया? –

उत्तर

11

सही करने के लिए सही काम इस समस्या को पिछले - ड्रॉ-रन में पता लगाता है और मर्ज करने से पहले svn delete के साथ स्थानीय विवादित डीआईआर को हटा देता है।

पहला परिदृश्य: पहले से किए गए विलय के साथ कार्य प्रतिलिपि। समाधान: कार्यशील प्रतिलिपि हटाएं, एक साफ प्रति चेकआउट करें और सही काम करें।

दूसरा परिदृश्य: svn resolve --accept=working के बाद, पहले से ही गलत निर्देशिका का उपयोग किया गया है।

आपको svn delete विरोधाभासी निर्देशिका होना चाहिए, और mergeinfo को अनदेखा करने वाली विवादित निर्देशिका की मूल निर्देशिका से विलय को दोबारा शुरू करना होगा। पिछली विरोधाभासी निर्देशिका को छोड़कर प्रत्येक ऑब्जेक्ट को वापस करें (अब संघर्ष नहीं है)। परिवर्तनों की जांच करें और प्रतिबद्ध करें।

पूर्व। वर्किंग कॉपी एक डब्ल्यूसी फ़ोल्डर। ए/conflictDir निर्देशिका में आपका संघर्ष:

cd A 
svn delete conflictDir 
svn merge --ignore-ancestry -rbeginRev:endRev <URLrepo/A> 
svn -R revert `ls | grep -v conflictDir` 
<... check ...> 
svn ci -m "conflictDir fixed" 
5

मैं इसी तरह की समस्या है, जहां मैं जो अपने स्थानीय फ़ाइल के साथ संघर्ष किया है किसी फ़ाइल को अपडेट svn था। मैं अपनी स्थानीय प्रति को बदलने के लिए रिमोट कॉपी चाहता हूं। मैंने क्या किया svn delete file_name, और फिर svn revert file_name। यह रिमोट कॉपी पर वापस आता है। मुझे यकीन नहीं है कि पहला एसवीएन डिलीट आवश्यक है या नहीं।

+0

यह मेरे लिए था, 'आरएम' के साथ फ़ाइल को हटाने के कारण संघर्ष जारी रहा, लेकिन इसे' svn delete' 'से हटा दिया गया और फिर इसे बहाल करने के लिए पेड़ संघर्ष को ठीक किया गया। – tomjen

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