2009-05-29 12 views
75

मैंने हाल ही में एसवीएन सर्वर को स्थानांतरित कर दिया है और अब मैं अपने कंप्यूटर से काम करने वाली प्रतियों को नए सर्वर पर स्थानांतरित करने की कोशिश कर रहा हूं। लेकिन मुझे अजीब त्रुटि मिलती है। मैं करता हूँ:एसवीएन स्विच त्रुटि - एक ही भंडार नहीं है

svn switch http://99.99.99.new/svn/company/project/trunk/web 

लेकिन मैं

svn: 'http://99.99.99.old/svn/company/project/trunk/web' 
is not the same repository as 
'http://99.99.99.new/svn/company/project' 

कदम डंप और आयात के साथ बनाया गया था मिलता है ... और रेपो जड़ पर http://99.99.99.new/svn/company/project

तुम लोगों के किसी भी विचार है है क्या गलत हो सकता है? बहुत बहुत शुक्रिया

उत्तर

127

टिप्पणी में Sporino द्वारा बताया गया है

svn switch --relocate http://99.99.99.old/svn/company/project/trunk/web http://99.99.99.new/svn/company/project/trunk/web 

उपयोग करने का प्रयास, सबवर्सन 1.7 के बाद से, वहाँ एक अलग relocate आदेश दिया गया है:

svn relocate http://99.99.99.old/svn/company/project/trunk/web http://99.99.99.new/svn/company/project/trunk/web 
+0

धन्यवाद .. यह काम किया: डी –

+0

+1, के रूप में मैं वास्तव में इस एक जवाब :) – Unreason

+0

+1 की तलाश में पाया जाता है, उसी के लिए –

1

आप --relocate उपयोग करने की आवश्यकता विकल्प:

svn switch --relocate http://99.99.99.new/svn/company/project/trunk/web 

svnbook देखें अधिक जानकारी।

+0

सुझाव के लिए धन्यवाद, लेकिन जैसा कि बास्टर्ड सेंट ने लिखा था कि आपको URL से –

+1

दोनों को निर्दिष्ट करने की आवश्यकता है, जो कि खराब यूआई डिज़ाइन है जो मुझे सबवर्जन और एसवीके के बारे में बताता है। विदेशी उपयोग-मामले हो सकते हैं जिनके लिए आपको दो यूआरएल निर्दिष्ट करने की आवश्यकता होती है, लेकिन औजारों को केवल गलत डिफ़ॉल्ट लेना चाहिए। एसवीके में, उदाहरण के लिए, मुझे मर्ज स्रोत और लक्ष्य निर्दिष्ट करने के लिए * आवश्यकता * नहीं चाहिए, लेकिन मैं करता हूं। –

4

relocate कमांड लाइन पैरामीटर switch कमांड का उपयोग करें।

svn switch documentation

कभी कभी एक व्यवस्थापक अपने भंडार के "आधार स्थान" बदल सकता है - दूसरे शब्दों में, भंडार की सामग्री को नहीं बदलता है, लेकिन मुख्य प्रयोग किया जाता यूआरएल की जड़ तक पहुंचने के लिए भंडार करता है। उदाहरण के लिए, होस्टनाम बदल सकता है, या यूआरएल स्कीमा, या शायद सिर्फ पथ जो भंडार की ओर जाता है। चेकआउट को एक नई कामकाजी प्रतिलिपि के बजाय, आप अपने कामकाजी प्रतिलिपि में सभी यूआरएल की शुरुआत "एसवीएन स्विच कमांड" पुनः लिख सकते हैं। प्रतिस्थापन करने के लिए --relocate कमांड का प्रयोग करें। कोई फ़ाइल सामग्री बदली नहीं जाती है, न ही भंडार से संपर्क किया जाता है। यह आपकी कार्यशील प्रति .svn/निर्देशिकाओं पर एक पर्ल स्क्रिप्ट चलाने जैसा है जो s/OldRoot/NewRoot/चलाता है।

23

इसके अलावा, टोर्टोइज एसवीएन में "रिलायोक" विकल्प है, जिसे आपको इन स्थितियों में उपयोग करना चाहिए ("स्विच" विकल्प के बजाय)।

+0

सहमत ... लेकिन मैं उबंटू पर था ताकि विकल्प उपलब्ध न हों :) –

+1

+1 कछुए सहायता के लिए +1। – jachguate

7

एक SVN स्थानांतरण करने के लिए मेरे लिए सबसे अच्छा तरीका यह है:

svn switch --relocate $(svn info | grep ^URL | cut -f 2 --delim=' ') \ 
         new_url_or_repository 

इस तरह, svn info आदेश से सही पुराने यूआरएल का उपयोग कर, आप एक गलत है, जो में से एक है में प्रवेश नहीं करने के लिए सुनिश्चित कर रहे हैं सामान्य erros।

यदि सब कुछ सही है, तो आपको नए स्थान के लिए लेख विवरण के साथ संकेत दिया जाएगा, यदि वे अलग हैं।

आदेश जारी करने के बाद, दोबारा जांच करें कि परिवर्तन लागू किया गया है URL पैरामीटर को देख करने के लिए सुनिश्चित,

svn info 

जारी करने स्थानांतरित करने के बाद कि सब कुछ ठीक है की जाँच करने के अपने काम प्रतिलिपि को अपडेट, हो सकता है,:

svn update 

मेरे 2c ..

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