एसवीएन 405 विधि अनुमति नहीं है


122

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

svn: सर्वर ने '/ sv / www / www /! svn / wrk / 9de0d765-2203-456c-af16-58-792ec7ac0 / trunk / htdocs / solutions / medical' के लिए MKCOL अनुरोध के जवाब में अप्रत्याशित रिटर्न वैल्यू (405 मेथड नॉट अलाइड) भेजा।

मैंने अनगिनत क्लीनअप, कमिट, अपडेट आदि चलाए हैं। कुछ भी नहीं इस मुद्दे को हल करता है। विचार?

FYI करें, मेरे पास शीर्ष स्तर के फ़ोल्डर का नाम बदलने का विकल्प नहीं है।


मैंने एक उपनिर्देशिका को हटाने का प्रयास करते हुए ऐसा ही करने की कोशिश की ताकि मैं इसे ठीक से अनदेखा कर सकूं। किसी तरह यह अपने आप हल हो गया और मुझे वास्तव में नहीं पता है कि तत्वों के संयोजन ने इसे अनुमति देने के लिए क्या संयोग किया, इसलिए मैंने अपना प्रश्न छोड़ दिया। मेरा नया है: हम सभी का उपयोग क्यों नहीं करते हैं git?
आईकेडवाटर

जवाबों:


170

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


1
मैंने इसे दूसरे चेक आउट संस्करण पर सत्यापित किया। मेरी कार्य प्रतिलिपि इसके साथ अपडेट क्यों नहीं होगी, मैं निर्धारित नहीं कर सकता।
सड़कों के किनारे

1
क्या यहां भी ऐसा ही था, लेकिन मुझे फ़ोल्डर को एक अलग फ़ोल्डर में जांचना था (या यों कहें, मैंने इसका नाम बदलकर "फू" कर दिया और svn up'd हो गया और वापस आ गया, जिसमें "डिलीट" फ़ोल्डर भी शामिल था, मेरी सफल प्रतिबद्धता के बावजूद। इसे हटाने के लिए।)
कलल

1
@ शाजी: मैं आपका मामला समझता हूं। लेकिन मैं इस त्रुटि के कारण अभी भी कैसे प्रतिबद्ध हो सकता हूं? या करने के लिए वैसे भी है, कृपया मुझे बताओ। धन्यवाद।
हूई टॉवर

1
फ़ोल्डर पर एक SVN अपडेट करें, और फिर दोबारा प्रयास करें।
एलेक्स आर

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

56

मेरे लिए इसे ठीक करने का सबसे तेज़ तरीका प्रभावित फ़ोल्डर को डुप्लिकेट करना था, और इसे वैकल्पिक नाम के साथ प्रतिबद्ध करना था। तब svn mv duplicateFolder originalFolder। बहुत आसान।

तो, folder1 लें और एक folder1 बनाएँ:

svn delete folder1
svn add folder1Copy

प्रतिबद्ध और अपडेट करें:

svn mv folder1Copy/ folder1/

फिर से प्रतिबद्ध है और यह तय हो गया है।


6
यह मेरे लिए बहुत अच्छा काम किया और एक दूसरी काम की नकल से निपटने की तुलना में बहुत सरल है।
जस्टिन

उम्मीद commit & updateहै कि यूनिक्स में शाब्दिक कमांड लाइन नहीं है ... दोनों समानांतर में करने की कोशिश करेंगे।
लार्स

1
शानदार अच्छे साहब अगर आप धूप सेंकने आते हैं और किसी तरह मुझे ढूंढते हैं तो मैं आपको कॉफी खरीदूंगा।
माइकल वोज्नेसेंस्की

10

मेरा "गायब" फ़ोल्डर था libraries/fof

यदि मैंने इसे हटा दिया है, तो एक अद्यतन चलाया, यह दिखाई नहीं देगा।

cd libaries
svn up

(कुछ नहीं हुआ)।

लेकिन वास्तविक नाम के साथ अद्यतन:

svn update fof

चाल चली और इसे अपडेट किया गया। इसलिए मैंने अपनी (मैन्युअल रूप से टार-आर्काइव की हुई) इस पर काम करने की कॉपी और सिफारिश की। सबसे आसान समाधान।


सहमत यह सबसे आसान है। बस "svn up" के बजाय "svn up [folder]" करें।
दिमित्रिस

यह समाधान वह है जो मेरे लिए काम करता है। धन्यवाद।
मिगुएल किराया

4

मैंने इसे अपने स्वयं के भंडार में तय किया। मैं विंडोज पर TortoiseSVN का उपयोग कर रहा हूं, इसलिए मुझे यकीन नहीं है कि यह कमांड लाइन पर क्या अनुवाद करता है, लेकिन यहां मैंने क्या किया है:

समस्याग्रस्त फ़ोल्डर को कहा जाता है lib, और इसे जोड़ा जाना था।

  • पहले मैंने ऐड को खोल दिया, ताकि एसवीएन अब उस पर ध्यान नहीं दे रहा था।
  • तब मैंने इसका नाम बदलकर (के लिए libs, वह बात नहीं) विंडोज संदर्भ मेनू का उपयोग करते हुए, इसे जोड़ा, और सफलतापूर्वक प्रतिबद्ध किया।
  • अंत में मैंने इसका नाम बदलकर libTortoiseSVN के संदर्भ मेनू (यह शायद महत्वपूर्ण है) का उपयोग करके वापस कर दिया है ।

3

मैंने भी अभी इस समस्या को पूरा किया और इसे इस तरह हल किया। इसलिए मैंने इसे यहाँ रिकॉर्ड किया है, और मेरी इच्छा है कि यह दूसरों के लिए उपयोगी हो।

परिदृश्य:

  1. इससे पहले कि मैं कोड करूं, संशोधन: 100
  2. (कोई और कोड करता है ... संशोधन बढ़कर 199 हो गया)
  3. मैं ("svn up" चलाना भूल गया), अब कोड में संशोधन करता हूं, मेरा संशोधन: 200
  4. मैं "svn up" चलाता हूं।

त्रुटि हुई।

उपाय:

  1. $ mv current_copy copy_back # वर्तमान कोड कॉपी का नाम बदलें
  2. $ svn चेकआउट current_copy # इसे फिर से देखें
  3. $ cp copy_back / current_copy # अपने संशोधनों को पुनर्स्थापित करें

3

मुझे भी ऐसी ही समस्या का समाधान करना पड़ा था। मैंने कक्षा से इसे समाप्त कर दिया, और इस प्रक्रिया में अपना SVN इतिहास खो दिया। लेकिन कम से कम मैंने ऐसा किया कि लानत त्रुटि दूर हो जाती है।

यह संभवतः निष्पादित करने के लिए आदेशों का एक उप-इष्टतम अनुक्रम है, लेकिन इसे उन आदेशों के अनुक्रम का काफी बारीकी से पालन करना चाहिए जो मैंने वास्तव में काम करने के लिए प्राप्त किए थे:

cp -rp target ~/other/location/target-20111108
svn rm target --force
cp -rp ~/other/location/target-20111108 target-other-name
cd target-other-name
find . -name .svn -print | xargs rm -rf
cd ..
svn add target-other-name
svn ci -m "Re-re-re-re-re-re-re-re-re-re import target"
svn mv target-other-name target
svn ci -m "Re-re-re-re-re-re-re-re-re-re import target"

यह सुनिश्चित करने का एकमात्र तरीका है।
टॉमडेस्ट्री

1

यदि आप code.google.comअपने तोड़फोड़ भंडार को होस्ट करने के लिए उपयोग करते हैं।

आप चीजों के नीचे जानते हैं, है ना?

If you plan to make changes, use this command to check out the code as yourself using HTTPS:

# Project members authenticate over HTTPS to allow committing changes.
svn checkout https://.../svn/trunk/ user-...

When prompted, enter your generated googlecode.com password.
Use this command to anonymously check out the latest project source code:

# Non-members may check out a read-only working copy anonymously over HTTP.
svn checkout http://.../svn/trunk/ ...-read-only

आपने जिस त्रुटि का उल्लेख किया है, आप Non-members may check out a read-only working copy anonymously over HTTPस्थिति का उपयोग कर रहे हैं । इसलिए, आप अभी तक कुछ भी प्रतिबद्ध या नहीं कर सकते हैं।

आपको Project members authenticate over HTTPS to allow committing changesचीज़ का उपयोग करना चाहिए ।

अब ठीक हो जाएगा।


0

मैंने उसी मुद्दे का सामना किया और इसे ठीक करने में सक्षम था:

  1. फोल्डर को दूसरी जगह कॉपी करें।
  2. प्रतिलिपि किए गए फ़ोल्डर से .svn हटाएं
  3. मूल फ़ोल्डर पर राइट क्लिक करें और 'SVN चेकआउट' चुनें
  4. यदि आप नहीं पाते हैं (3), तो आपका मामला खान से अलग है।
  5. देखें कि REPO-BROWSER पर निर्देशिका सही है या नहीं। मेरे मामले के लिए, यह कारण था।
  6. चेक आउट
  7. मूल निर्देशिका में कॉपी किए गए फ़ोल्डर से फाइलें वापस प्राप्त करें।
  8. प्रतिबद्ध होते हैं।

0

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


0

वर्तमान में जोड़ी गई निर्देशिका पहले से ही भंडार में प्रतिबद्ध है। इसलिए रिपॉजिटरी में डायरेक्टरी को डिलीट करें और उसी डायरेक्टरी को फिर से कमिट करें।


0

मुझे यह त्रुटि मिली क्योंकि मैंने URL पते को "/" के साथ समाप्त होने वाले नए के साथ बदल दिया। मेरा मतलब है कि REPOSITORY तालिका में wsdb डेटाबेस में .svn फ़ोल्डर में रिकॉर्ड ।

जब मैंने साइन हटा दिया: "/" तब त्रुटि चली गई।

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