svn

2011-03-15 14 views
13

में फ़ोल्डर को सिम्लिंक में कैसे स्विच करें, मेरे पास एक फ़ोल्डर था जो svn में एक प्रोजेक्ट का हिस्सा था, जिसे परियोजनाओं के बीच साझा करने के लिए एक अलग फ़ोल्डर/भंडार में स्थानांतरित कर दिया गया है। मैं एक सिमलिंक/डब्ल्यू SVN में इस निर्देशिका बदलना चाहते हैं, लेकिन जब मैं ऐसा करने के लिए प्रयास करते हैं, मैं यह संदेश प्राप्त:svn

svn: Entry '/project/wwwdocs/js' has unexpectedly changed special status 

कैसे मैं एक सिमलिंक के साथ इस निर्देशिका की जगह ले सकता?

उत्तर

15

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

संपादित करें: यह प्रश्न पहले से पूछा गया है और कुछ सभ्य प्रतिक्रिया प्राप्त हुई है। इसे देखें: Commit symlink into subversion

+0

इस मामले में पिछले संस्करणों में हटाए गए फ़ाइल का क्या होता है? इसे वहां भी हटा दिया गया है? – wander95

+0

यह लंबे समय से रहा है क्योंकि मैंने एसवीएन का उपयोग किया है, इसलिए मुझे ईमानदारी से कोई जानकारी नहीं है। –

17

निम्नलिखित प्रत्येक सिम्लिंक पर विशेष संपत्ति सेट करता है और इसे सामान्य फ़ाइलों/निर्देशिकाओं पर हटा देता है। फ़ाइलों को संचालित करने के लिए निर्धारित करने के कई तरीके हैं।

svn_special_files=`svn propget --recursive svn:special | cut -d' ' -f1` 
for i in `find . | grep -v "\.svn" | cut -d'/' -f2-`; do 
    is_special=false 
    for j in $svn_special_files; do 
    if [ "$j" = "$i" ]; then 
     is_special=true; 
     break; 
    fi 
    done 
    if [ -h $i ] ; then 
    ! $is_special && svn propset svn:special '*' $i 
    else 
    $is_special && svn propdel svn:special $i 
    fi 
done 
+0

बहुत उपयोगी दिनचर्या, और मुझे कभी नहीं पता था कि आप उपयोग का उपयोग करें! उसके जैसा। (+1) – Orwellophile

+0

बहुत बहुत धन्यवाद, बहुत उपयोगी लिपि! – Setomidor

+0

स्क्रिप्ट का स्पष्टीकरण: svn सेट करके: विशेष संपत्ति सही ढंग से, आप फ़ाइल से सिम्लिंक में या symlink से फ़ाइल को एक बार में बदल सकते हैं। स्क्रिप्ट स्वचालित रूप से सही एसएनएन सेट करता है: आपके भंडार में सभी फाइलों के लिए विशेष संपत्ति। – phobic

1

तुम भी दोषी फ़ाइल को दूर करने के लिए एक सरल जवाब कोशिश कर सकते हैं -

svn remove --force <file> 

यह SVN CLI का उपयोग कर Windows उपयोगकर्ताओं के लिए विशेष रूप से उपयोगी है।

0

आप इस समस्या को हल करने के लिए कमांड झटका निष्पादित कर सकते हैं।

svn propset svn:special on /project/wwwdocs/js