एसवीएन: फ़ोल्डर पहले से ही संस्करण नियंत्रण में है, लेकिन कॉमटिंग नहीं है?


111
mark@mark-ubuntu:~/myproject$ svn stat
?       runserver.sh
?       media/images/icons
?       apps/autocomplete
mark@mark-ubuntu:~/myproject$ svn add apps/autocomplete
svn: warning: 'apps/autocomplete' is already under version control

svn statइसके संस्करण नियंत्रण में नहीं है, इसलिए मैं इसे जोड़ने की कोशिश करता हूं, और फिर यह बताता है कि यह है। जब मैं svn ciए करता हूं , तो यह कमिटेड नहीं होता है, और जब मैं रिपॉजिटरी ऑनलाइन ब्राउज़ करने की कोशिश करता हूं तो यह दिखाई नहीं देता है।

मैं इसे कैसे प्राप्त कर सकता हूं?


3
क्या "स्वतः पूर्ण" फ़ोल्डर में एक टूटा हुआ ".svn" उपनिर्देशिका है? इसके अलावा, क्या आपने सफाई दी? :)
bzlm

1
क्या आपने कोशिश की है: svn सफाई, अंधेरे में बस एक छुरा?
शॉनहुसैन

मैं इस मुद्दे में भाग गया जब मैंने अपनी परियोजना के किसी अन्य फ़ोल्डर में निर्देशिका में एक चेक कॉपी की थी। पुराने को हटाने का .सावन काम करता है!
पॉलिरेकुगलर

मैंने जबरदस्ती फाइलें जोड़ीं: svn add --force /path/to/fileया यदि आप निर्देशिका को पुन: जोड़ना चाहते हैं svn add --depth infinity --force /path/to/directory:।
जोकर

जवाबों:


162

समस्याग्रस्त फ़ोल्डर को कुछ बैकअप निर्देशिका में कॉपी करें और इसे अपने SVN वर्किंग डायरेक्टरी से हटा दें। .svnकॉपी किए गए फ़ोल्डर से सभी छिपी निर्देशिकाओं को हटाना याद रखें ।

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

अपडेट: @Mark द्वारा टिप्पणी उद्धृत :

चारों ओर फ़ोल्डर ले जाने की जरूरत नहीं थी, बस .svnफ़ोल्डर को हटाने और फिर svn-add यह काम किया।


52
चारों ओर फ़ोल्डर ले जाने की जरूरत नहीं थी, बस .svnफ़ोल्डर को हटाने और फिर svn-add यह काम किया।
एमपीएन

6
मेरे दिन बनाने के लिए +1; जैसा कि मार्क ने कहा, मेरे लिए यह समस्याग्रस्त फ़ोल्डर के भीतर .svn निर्देशिकाओं को हटाने के लिए पर्याप्त था।
11:27

23
एसवीएन को पूरी तरह से पहचानने के लिए धन्यवाद बीएस।
स्टीव के।

1
अब जब आपके पास केवल शीर्ष फ़ोल्डर में। svn, आप यह बीएस नहीं कर सकते, यदि मेटाडेटा भ्रष्ट है, तो आप टोस्ट हैं
कल्पेश सोनी

सूची से पैरेंट फ़ोल्डर (एप्लिकेशन / स्वतः पूर्ण) को अनचेक करें यदि पहले से ही शुरू हो गया है
khaled_webdev

20

मुझे एक निर्देशिका पेड़ को जोड़ने के बाद एक समान दिखने वाली समस्या थी, जिसमें .svn निर्देशिका (क्योंकि यह एक svn: बाहरी इसके स्रोत वातावरण में थी): svn स्थिति ने मुझे "?" बताया, लेकिन जब इसे जोड़ने की कोशिश की गई, तो यह "पहले से ही था" संस्करण नियंत्रण में "।

चूंकि कोई अन्य संस्करण निर्देशिकाएं मौजूद नहीं थीं, इसलिए मैंने किया

find . -mindepth 2 -name '.svn' -exec rm -rf '{}' \;

गलत .svn निर्देशिकाओं को हटाने के लिए; ऐसा करने के बाद, मैं नई निर्देशिका को जोड़ने में सक्षम था।

नोट :

  • यदि अन्य संस्करण निर्देशिकाएं समाहित हैं, तो खोज अभिव्यक्ति को और अधिक विशिष्ट होना चाहिए
  • यदि अनिश्चित है, तो पहले "-exec ..." भाग को छोड़ दें, यह देखने के लिए कि क्या हटा दिया जाएगा

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

मैं 'अगर अनिश्चित' होने की सलाह देता हूं, ... -exec echo {} \;तो आप अपने -exec स्विच को अच्छी तरह से काम कर सकते हैं।
FlipMcF

यह भी -type dखोजने के लिए एक जोड़ने की सलाह देते हैं। मुझे तब तक पिक्सी बुलाओ, जब तक तुम्हारा काम rm -rfबहुत दूर नहीं हो जाता। मेरे नाइटपिक्स के अलावा - मुझे लगता है कि यह सही उत्तर है।
19

15

@ Gauss256 के उत्तर में भिन्नता , हटाना .svn, मेरे लिए काम की:

rm -rf troublesome_folder/.svn
svn add troublesome_folder
svn commit

गॉस के समाधान से पहले मैंने @ jwir3 के दृष्टिकोण की कोशिश की और कोई खुशी नहीं मिली:

svn cleanup
svn cleanup *
svn cleanup troublesome_folder
svn add --force troublesome_folder
svn commit

14

(१) यह सिर्फ मेरे साथ हुआ, और मुझे लगा कि यह दिलचस्प है कि यह कैसे हुआ। मूल रूप से मैंने फ़ोल्डर को एक नए स्थान पर कॉपी किया था और इसे संशोधित किया था, यह भूलकर कि यह सभी छिपे हुए .svn निर्देशिकाओं को साथ लाएगा। एक बार जब आप महसूस करते हैं कि यह कैसे होता है तो भविष्य में बचना आसान होता है।

(2) .svn निर्देशिकाओं को हटाना समाधान है, लेकिन आपको इसे निर्देशिका ट्री के नीचे पुनरावृत्ति करना होगा। ऐसा करने का सबसे आसान तरीका है:

find troublesome_folder -name .svn -exec rm -rf {} \;

3

आप एक svn सफाई प्रदर्शन की कोशिश की है?


2
Ive इस समस्या में भी भाग गया। फिर कोशिश की svn cleanupऔर यह मदद नहीं की।
imacake

3

एक निर्देशिका 'एप्लिकेशन / स्वत: पूर्ण / .svn' के लिए जाँच करें। इसे कहीं सुरक्षित रूप से स्थानांतरित करें (यदि आपको इसे बहाल करने की आवश्यकता है क्योंकि यह काम नहीं किया है) और देखें कि क्या समस्या को ठीक करता है।


0

मैंने एसवीएन क्लाइंट जावाएचएल (जेएनआई) 1.8.13 और कछुए के साथ ग्रहण (लूना) स्थापित करने के मामले में एक समाधान पाया :

ओपन एक्लिप्स: सबसे पहले प्रोजेक्ट कंट्रोल / मावेन मॉड्यूल को वर्जन कंट्रोल (प्रोजेक्ट -> संदर्भ मेनू -> टीम -> वर्जन कंट्रोल में जोड़ें) में जोड़ने का प्रयास करें।

आपको निम्न ग्रहण त्रुटि संदेश दिखाई देगा:

org.apache.subversion.javahl.ClientException: प्रविष्टि पहले से मौजूद है svn: 'PathToYouProject' पहले से ही संस्करण नियंत्रण में है

उसके बाद आपको अपने एक्सप्लोरर में अपना कार्यक्षेत्र निर्देशिका खोलना होगा, अपनी परियोजना का चयन करना होगा और इसे कछुआ (परियोजना -> संदर्भ मेनू -> कछुआ-सीवीएन -> हल) के माध्यम से हल करना होगा।

आपको निम्न संदेश संवाद दिखाई देगा: " फ़ाइल सूची रिक्त है "

Eclipse में प्रोजेक्ट को रद्द करें और ताज़ा करें। आपकी परियोजना फिर से संस्करण नियंत्रण में होनी चाहिए।

दुर्भाग्य से एक ही समय में एक परियोजना को हल करना संभव नहीं है ... आपको कुछ भी हटाने की आवश्यकता नहीं है लेकिन आपके प्रोजेक्ट के आकार के आधार पर यह थोड़ा श्रमसाध्य हो सकता है।


0

मेरे लिए एक svn अद्यतन कर रहा है, उसके बाद svn प्रतिबद्ध काम किया है। फ़ोल्डर में कोई .svn फ़ोल्डर मौजूद नहीं थे जो कि जोड़ने में विफल रहा था।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.