2008-11-23 11 views
59

मैं एसवीएन में एक मौजूदा साइट जोड़ रहा हूं।वर्तमान फ़ाइलों को ओवरराइट करने के लिए एक एसवीएन चेकआउट कमांड को मजबूर करें

फाइलें पहले से ही वेबसर्वर पर मौजूद हैं, और अब रिपॉजिटरी में समान प्रतियां (- कॉन्फ़िगरेशन फ़ाइलें) मौजूद हैं।

मैं एक SVN काम कर कॉपी में वेबसर्वर निर्देशिका परिवर्तित करना चाहते हैं, लेकिन जब मैं चलाएँ:

svn: Failed to add file '': object of the same name already exists

मैं SVN कैसे बता सिर्फ उन अधिलेखित करने के लिए करते हैं:

svn checkout http://path.to/svn/repo/httpdocs . 

मैं त्रुटि मिलती है फाइलें जिनकी सामग्री समान हैं?

+0

शीर्षक भ्रामक है, चेकआउट कमांड होना चाहिए, कमांड – hasen

उत्तर

50

--force विकल्प आज़माएं। svn help checkout विवरण देता है।

+0

अपडेट नहीं करें एसवीएन (1.3.1) का मेरा संस्करण एक --force विकल्प प्रतीत नहीं होता है। यह कब जोड़ा गया था? –

+0

1.4, मुझे लगता है, हालांकि मुझे यकीन है कि रिलीज नोट्स की जांच करने के लिए आप उतने अच्छे होंगे जितना मैं ... क्या कोई कारण है कि आप इतने पीछे क्यों हैं? पिछली संगतता के संबंध में एसवीएन परियोजना बहुत अच्छी तरह से चल रही है, इसलिए उन्नयन से डरने का कोई कारण नहीं है। –

+0

हाँ - होस्ट किया गया सर्वर उबंटू 6.0.6 चला रहा है; जिसमें मानक स्थापित के रूप में svn 1.3 है। धन्यवाद –

3

रिपोजिटरी से एक नई निर्देशिका में खींचें, फिर पुराने को old_crufty का नाम दें, और नया एक my_real_webserver_directory का नाम बदलें, और आप जाने के लिए अच्छे हैं।

यदि आपका इरादा यह है कि प्रत्येक फ़ाइल एसवीएन में है, तो यह आपके सिद्धांत का परीक्षण करने का एक अच्छा तरीका है। यदि आपका इरादा यह है कि कुछ फाइलें एसवीएन में नहीं हैं, तो ब्रायन की कॉपी/पेस्ट तकनीक का उपयोग करें।

8

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

/usr/local/www 

mv www temp_www 
svn co http://www.yourrepo.com/therepo www 
cp -pR ./temp_www/* ./www 
svn revert -R ./www/* 
svn update 

मुझे आशा है कि इस मदद करता है और यह सुनिश्चित करें कि क्यों सिर्फ एक सरल SVN अद्यतन फ़ाइलें वापस नहीं बदला नहीं कर रहा हूँ: अगर वह मतलब नहीं है वहाँ नीचे एक उदाहरण है?

57

svn checkout --force svn://repo website.dir

तो

svn revert -R website.dir

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

+4

+1 यह बेहतर उत्तर है। – dwjohnston

+0

बहुत बेहतर जवाब। - बल मेरे लिए काम नहीं किया। –

4

मेरे पास 1.5 उपलब्ध नहीं थे, क्योंकि मैं कंप्यूटर पर नियंत्रण में नहीं हूं। फ़ाइल जो मुझे समस्या पैदा कर रही थी lib निर्देशिका में .jar फ़ाइल होने के लिए हुआ। समस्या यह हल करने के लिए मैंने यहां किया है:

rm -rf lib 
svn up 

यह नेड के उत्तर पर बनाता है। यही है: मैंने बस उप निर्देशिका को हटा दिया जो मुझे पूरे भंडार की बजाय समस्या का कारण बना रहा था।

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