2012-01-27 3 views
7

जब चल रहा है एक svn up मैं नियमित रूप से यह संकेत मिलते हैं:मैं प्रत्येक बाइनरी टकराव के लिए मुझे बिना किसी संकेत के एक विशिष्ट रिज़ॉल्यूशन लेने के लिए एसवीएन कैसे प्राप्त कर सकता हूं?

Conflict discovered in 'lib/somelibrary.so'. 
Select: (p) postpone, 
     (mf) mine-full, (tf) theirs-full, 
     (s) show all options: 

साधते s विकल्पों mc और tc, मेरा-संघर्ष और उनकी-संघर्ष है, जो माना जाता है कि मुझे सभी के लिए या तो मेरी संस्करण या अपने संस्करण ले जाने की अनुमति का पता चलता है संघर्ष और न केवल somelibrary.so

हालांकि, वे विकल्प काम नहीं करते हैं। मैं यह संदेश प्राप्त:

Invalid option; cannot choose based on conflicts in a binary file. 

एडविन के जवाब यह स्पष्ट है कि मैं गलत समझा गया है कि कैसे mc और tc काम करते हैं, लेकिन मैं अभी भी हर फ़ाइल है कि संघर्ष के लिए एक ही संकल्प लेने के लिए सक्षम होना चाहते हैं बनाता है। एसवीएन को पहली बार फिर से संकेत दिए बिना प्रत्येक संघर्ष के लिए mf या tf का उपयोग करने का कोई तरीका है?

उत्तर

10

svn update, svn switch, svn merge पर विवादों को स्वचालित रूप से हल करने के लिए, --accept ध्वज का उपयोग करें।

SVN Book - svn options से:

--accept कार्रवाई
स्वत: संघर्ष समाधान के लिए एक कार्य निर्दिष्ट करता है। संभावित कार्य स्थगित, आधार, मेरा पूर्ण, उनके पूर्ण, संपादित, और लॉन्च हैं।

प्रत्येक कार्य का अर्थ में देखा जा सकता svn resolvespecification:

आप अपने वांछित संकल्प पर निर्भर करता है --accept आदेश के लिए निम्न तर्क पारित कर सकते हैं:

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

काम कर यह मानते हुए कि आप मैन्युअल रूप से संघर्ष समाधान संभाला है, के रूप में यह वर्तमान में आपके काम कर नकल में खड़ा फ़ाइल का संस्करण चुनें।

मेरा पूर्ण के रूप में फ़ाइलों की प्रतियों के साथ सभी विवादित फ़ाइलों को हल करें, वे svn अद्यतन चलाने से पहले तुरंत खड़े थे।

उनकी भरा हल फ़ाइलों की प्रतिलिपियाँ कि जब आप SVN अद्यतन भागा सर्वर से लाई थे के साथ सभी विरोध हुआ फ़ाइलें।

खदान संघर्ष हल प्रत्येक फ़ाइल की सामग्री के परस्पर विरोधी क्षेत्रों में सर्वर से लाना परिवर्तन से अधिक स्थानीय संशोधनों को प्राथमिकता से सभी विरोध हुआ फ़ाइलें।

उनकी-संघर्ष हल परिवर्तन प्रत्येक फ़ाइल की सामग्री की क्षेत्रों में परस्पर विरोधी में स्थानीय संशोधन से अधिक सर्वर से लाई पसंद करते हैं द्वारा सभी विरोध हुआ फ़ाइलें।

Resolve Any Conflict अनुभाग भी देखें।

अंत में, एक उदाहरण। स्वचालित रूप से अद्यतन पर mine-full के रूप में सभी विवादों का समाधान करने निष्पादित करें:

$ svn up --resolve mine-full 
1

एमसी और टीसी विलय विकल्प हैं, जहां कोई केवल संघर्ष में लाइनों को मानता है, और फिर आपके स्रोतों (एमसी) या "अन्य" स्रोतों (टीसी) से उन पंक्तियों का विलय करता है।

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

आप एमएफ और टीएफ का उपयोग कर सकते हैं, जो थोड़ा अलग हैं। फ़ाइल के केवल विरोधाभासी क्षेत्रों को बदलने के बजाय, वे पूरी फ़ाइल को पूर्ण फ़ाइल की "मेरी" प्रतिलिपि (एमएफ) "मेरी" प्रतिलिपि, या (टीएफ) पूर्ण फ़ाइल की "उनकी" प्रतिलिपि के साथ प्रतिस्थापित करते हैं)।

यदि आप चाहते हैं कि एसवीएन "एमसी/टीसी फाइल विकल्प को बंद करें और स्वीकार करें", svn mime-type को संपादित करें और इसे टेक्स्ट पर सेट करें। शुभकामनाएं अगर यह एक टेक्स्ट फ़ाइल नहीं है, तो बाधाएं आपको एक ऐसी फाइल मिलेंगी जो बाइनरी फ़ाइल शुरू करने के विनिर्देशों के भीतर नहीं है (उदाहरण के लिए, दो जेपीईजी फाइलों के निरंतर खंडों को विलय करना, उदाहरण के लिए, वैध जेपीईजी फाइल नहीं मिलेगी)।

+0

भावना बनाता है, धन्यवाद। उस ज्ञान के साथ, क्या कोई तरीका है कि मैं प्रत्येक फाइल के लिए मुझे 'mf' या' tf' करने के लिए svn प्राप्त कर सकता हूं, बल्कि मुझे प्रत्येक के लिए संकेत देने के बजाय? –

+0

संघर्ष में प्रत्येक फ़ाइल को एक अलग तरीके से संकल्प की आवश्यकता हो सकती है। मुझे यकीन नहीं है कि बड़े पैमाने पर एक प्रकार का संकल्प तय करना बुद्धिमानी है इससे पहले कि आप यह भी जान सकें कि कौन सी फाइलें संघर्ष में हैं (या क्यों)। –

+0

सवाल यह है कि यह संभव है, न कि मुझे हर समय चाहिए। मुझे पता है जब ऐसा करना समझ में आता है और कब नहीं। –

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

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