2010-01-07 15 views
23

के साथ वृक्ष संघर्ष को हल नहीं कर सकता है हाल ही में मैंने उपversण के बहुत अजीब व्यवहार का सामना किया।एसवीएन

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

ठीक है, मैंने सोचा, मैंने कामकाजी प्रति को उचित रूप से संशोधित किया और "svn resol --accept = working -R" चलाया।

सबवर्जन ने कहा कि उसने मेरी समस्याओं का समाधान किया है और "svn st" ने अब कोई समस्या नहीं दिखाई है। तो, मैंने प्रतिबद्ध करने की कोशिश की, लेकिन svn ने मुझे बताया कि आंतरिक फ़ोल्डरों में से एक (मेरे विवादित एक के अंदर) पुराना था और svn अप करने का सुझाव दिया, लेकिन यह फ़ोल्डर फिर से संघर्ष में बना दिया!

क्या मैं इस visious चक्र से बाहर निकलने का करूँ?

+0

उत्तरों की समीक्षा और है कि मैं :( – FlipMcF

उत्तर

8

यह मदद कर सकता है या नहीं भी हो सकता है, लेकिन कभी-कभी "svn cleanup" अजीब मेटाडेटा समस्याओं को ठीक करेगा। यदि आप एक साफ कामकाजी प्रतिलिपि देखते हैं, तो क्या स्वच्छ प्रतिलिपि में एक ही समस्या है? यदि ऐसा है तो पिछला उत्तर सही दिशा में एक चरण की तरह लगता है

+0

आह, धन्यवाद, मैं सफाई के बारे में भूल गया था ... इसे आजमाने की आवश्यकता है। – Anton

5

आप SVN हल आदेश से एक अन्य तरीके से उपयोग कर सकते हैं:

  1. विरोध हुआ फ़ाइल एक पैच बनाएँ। (या SVN निर्यात के साथ विरोध हुआ फ़ोल्डर के अपने संस्करण ... का बैकअप)
  2. अद्यतन अपने भंडार (SVN अद्यतन)
  3. पहले किया पैच लागू करें (या बैकअप के साथ विरोध हुआ फ़ाइल/फ़ोल्डर की जगह)
  4. परिवर्तन की प्रतिबद्धता (svn प्रतिबद्ध)
+0

स्वीकार करने के लिए चाहते हो सकता है आमतौर पर, इसका मतलब है कि .svn फ़ोल्डर गड़बड़ हो गया है। एसवीएन क्लीनअप कमांड मदद कर सकता है लेकिन यह मेरे लिए कभी काम नहीं करता है इसलिए मैं हर बार इस विधि का उपयोग कर रहा हूं ... (उदास)। इस पोस्ट को "स्वीकृत उत्तर" के रूप में चिह्नित करना न भूलें यह काम करता है (या फिर यह प्रश्न अभी भी अनुत्तरित नहीं रहेगा) – Anton

+1

साथ अंत जब SVN काम नहीं कर रहा वास्तव में क्या है एक अलग जवाब – Phong

0

आपके विलय होने पर शायद आपके फ़ोल्डरों को अपडेट नहीं किया गया था, या विलय से पहले कहीं भी एक संघर्ष था। ठीक करने के लिए, आपको अपने ट्रंक (लक्ष्य फ़ोल्डर) को पिछले संशोधन में वापस करना होगा। फिर उस फ़ोल्डर पर क्लीन-अप चलाएं। फिर शाखा फ़ोल्डर (स्रोत फ़ोल्डर) पर सफाई चलाएं। फिर दो फ़ोल्डरों को दोबारा अपडेट करें। यदि आप किसी भी वर्कफ़्लो में लाल रंग की रेखाएं प्राप्त कर रहे हैं, तो आपको पहले उन फ़ाइलों को वापस करने की आवश्यकता है, फिर उन्हें उस स्थिति में ले जाएं जिसे आप चाहते हैं। फिर फ़ोल्डर अपडेट करें (हाँ, एक बार फिर)। अंत में विलय फिर से करें।

41
~/sandbox/jabira > svn resolve --accept=theirs-full testClient/ 
svn: warning: Tree conflicts can only be resolved to 'working' state; 'testClient' not resolved 

~/sandbox/jabira > svn resolve --accept=working testClient/ 
Resolved conflicted state of 'testClient' 

आशा इस मदद

+1

धन्यवाद यह मदद की! मुझे लगता है कि svn से चेतावनी संदेश गलत व्याख्या करना आसान है, कि svn गड़बड़ है। असल में यह एक निर्देश है कि इस मामले में क्या करना है। –

0

यह वही काम किया मुझे सभी स्थानीय परिवर्तनों को रोकने के और सर्वर रिपोजिटरी से फाइलों के साथ जाने के लिए के लिए है:

svn update --accept theirs-full 

svn resolve --accept theirs-full <pathname> 

यह संदेश प्रकट होता है: W155027: पेड़ संघर्ष केवल 'काम कर रहे'

Unintuitive अगले चरण पर हल किया जा सकता है, लेकिन यह वास्तव में पकड़ने के 22 कटौती:

svn resolve --accept=working <pathname> 

अब सभी "कामकाजी" परिवर्तनों को दोबारा बदल दें। यह मेरे सभी स्थानीय परिवर्तनों को कमजोर करता है।

svn revert -R . 

सामान्य करने के लिए वापस, कोई त्रुटि के साथ:

svn update