मुझे यह त्रुटि तब आती है जब मैं एक svn update
:
वर्किंग कॉपी XXXXXXXX लॉक "क्लीनअप" कमांड निष्पादित करें
जब मैं सफाई चलाता हूं, मुझे मिलता है
क्लीनअप निम्नलिखित पथों को संसाधित करने में विफल रहा: XXXXXXXX
मैं इस पाश से कैसे बाहर निकलूं?
मुझे यह त्रुटि तब आती है जब मैं एक svn update
:
वर्किंग कॉपी XXXXXXXX लॉक "क्लीनअप" कमांड निष्पादित करें
जब मैं सफाई चलाता हूं, मुझे मिलता है
क्लीनअप निम्नलिखित पथों को संसाधित करने में विफल रहा: XXXXXXXX
मैं इस पाश से कैसे बाहर निकलूं?
जवाबों:
एक दृष्टिकोण यह होगा:
एक अन्य विकल्प शीर्ष स्तर के फ़ोल्डर को हटाना और फिर से जांचना होगा। उम्मीद है कि यह हालांकि नहीं आता है।
मेरे लिए, यह ट्रिक svn cleanup
मेरी वर्किंग कॉपी में सबसे ऊपर चलने के लिए थी, उस फोल्डर में नहीं जहां मैं समस्या आने से पहले पूरे समय काम कर रहा था।
अपने .svn
फ़ोल्डर में देखें, इसमें एक फ़ाइल होगी जिसे कॉल किया जाएगा lock
। उस फ़ाइल को हटा दें और आप अपडेट कर पाएंगे। .svn
प्रत्येक उपनिर्देशिका की निर्देशिका में अधिक लॉक फाइलें हो सकती हैं । उन्हें हटाने की भी आवश्यकता होगी। यह उदाहरण के साथ कमांड लाइन से काफी बैच के रूप में किया जा सकता है
find . -name 'lock' -exec rm -v {} \;
ध्यान दें कि आप मैन्युअल रूप से .svn
फ़ोल्डर में फ़ाइलों को संपादित कर रहे हैं । उन्हें वहां एक कारण के लिए रखा गया है। वह कारण गलती हो सकती है, लेकिन यदि आप अपनी स्थानीय प्रति को नुकसान नहीं पहुंचा रहे हैं।
find . | grep ".svn/lock" | xargs rm
मेरे मामले में मैंने इसे SQLite ".svn \ wc" फ़ाइल लॉक रिकॉर्ड में मैन्युअल रूप से हटाकर WC_LOCK तालिका में रिकॉर्ड किया था।
मैंने SQLite संपादक के साथ "WC" फ़ाइल खोली और निष्पादित की
delete from WC_LOCK
बाद eakkas की टिप्पणी है, तो आप से सभी प्रविष्टियों को हटाने के लिए आवश्यकता हो सकती है WORK_QUEUE
के रूप में अच्छी तरह से मेज।
सबसे आसान तरीका:
Clean up working copy status
, Break locks
, Fix time stamps
, Vacuum pristine copies
, Refresh shell overlays
,Include externals
आपने अपना काम सफलतापूर्वक किया।
अपने संदर्भ के लिए स्क्रीन शॉट्स की जाँच करें।
पहला कदम:
दूसरा चरण: ब्रेक लॉक विकल्प को सक्षम करें (क्लीनअप पॉपअप विंडो में दूसरा चेक बॉक्स)
आशा है कि यह आपकी बहुत मदद करेगा।
काम पर एक सहकर्मी लगातार इस संदेश को देखता है, और उसके लिए यह इसलिए है क्योंकि उसने SVN से इसे हटाने के बिना SVN संस्करण नियंत्रण के तहत एक निर्देशिका को हटा दिया है, और फिर उसी नाम के साथ संस्करण नियंत्रण के तहत नहीं इसके स्थान पर एक नई निर्देशिका बनाई है।
यदि यह आपकी समस्या है ...:
इसे ठीक करने के अलग-अलग तरीके हैं, यह निर्भर करता है कि निर्देशिका को कैसे / क्यों प्रतिस्थापित किया गया।
किसी भी तरह से, आप की आवश्यकता होगी:
ए) मौजूदा निर्देशिका का नाम अस्थायी नाम पर रखें
बी) फ़ाइल सिस्टम से हटाए गए निर्देशिका को पुनर्प्राप्त करने के लिए एक SVN करें, लेकिन SVN से नहीं
वहाँ से, आप या तो
ए) प्रासंगिक फ़ाइलों को उस निर्देशिका में कॉपी करें जिसे हटा दिया गया था
बी) आप निर्देशिका में सामग्री की एक महत्वपूर्ण परिवर्तन किया था, तो एक SVN मूल पर हटा सकते हैं, के लिए प्रतिबद्ध है, और नाम बदलने वांछित नाम के लिए अपने नए निर्देशिका वापस, एक SVN के बाद प्राप्त करने के लिए जोड़ते हैं कि संस्करण नियंत्रण में है।
मेरे लिए उपरोक्त समाधानों में से किसी ने भी काम नहीं किया। मुझे ताले तोड़कर एक समाधान मिला। जब मैंने svn सफाई का प्रदर्शन किया, तो मैंने "ब्रेक लॉक" के साथ "क्लीन अप वर्किंग कॉपी स्टेटस" का चयन किया।
यह एक मेरे लिए काम किया।
साफ करने के बाद यह आपको नवीनतम संस्करण में अपडेट करने की अनुमति देगा।
Clean up working copy status
और Breaks locks
औरInclude externals
मेरे लिए, यह वास्तव में कछुआ की गलती थी। कछुआ ने केवल शिकायत की "सफाई नहीं कर सकते, सफाई ठीक से चला सकते हैं", लेकिन जब मैंने कमांड लाइन (svn cleanup) चलाई, तो उसने मुझे स्पष्ट रूप से कहा कि यह उपयोग में आने वाली कुछ फाइलों को हटा नहीं सकता, जिसका समाधान स्पष्ट था। एक बार जब मैंने विजुअल स्टूडियो (जो फाइलों को खोलकर रख रहा था) को बंद कर दिया, तो क्लीनअप ने ठीक काम किया।
अन्य प्रोग्राम भी इस समस्या के कारण रेपो में फ़ाइलें खोल सकते हैं। एक्सेल को खुले में रखना एक्सेल एक अन्य उदाहरण में एक अपराधी था, इसलिए सभी कार्यक्रमों को बंद करने में समझदारी हो सकती है जो रेपो में कुछ भी उपयोग कर रहे हों या प्रोग्राम को बंद करने के लिए मजबूर करने और फिर से सफाई करने की कोशिश कर रहे हों।
मुझे यह समस्या थी क्योंकि बाहरी फ़ोल्डर मौजूदा फ़ोल्डर में लिंक नहीं होना चाहते हैं। यदि आप एक svn: एक्सटर्नल प्रॉपर्टी लाइन जोड़ते हैं, जहां गंतव्य एक मौजूदा (संस्करण या गैर-संस्करण) फ़ोल्डर है, तो आपको SVN वर्निंग कॉपी लॉक त्रुटि मिलेगी। यहां एक सफाई भी आपको बताएगी कि सब कुछ ठीक है, लेकिन फिर भी अपडेट करने से काम नहीं चलेगा।
समाधान: परेशान फ़ोल्डर को रिपॉजिटरी से हटाएं और रूट फ़ोल्डर में एक अपडेट करें जहां svn: externals property सेट है। इससे फोल्डर बन जाएगा और सब फिर से ठीक हो जाएगा।
यह समस्या मेरे लिए उत्पन्न हुई क्योंकि svn: फाइलों के लिए बाह्य उपकरणों को गंतव्य फ़ोल्डर को नियंत्रित करने के लिए संस्करण की आवश्यकता होती है। जब मैंने देखा कि यह विभिन्न रिपॉजिटरी में काम नहीं करता है, तो मैंने बाहरी फ़ाइलों से बाहरी फ़ोल्डर में स्वैप किया और इस गड़बड़ी में मिला।
ऐसा करने का सबसे आसान तरीका छिपा हुआ फ़ोल्डर है और फिर .SVN फ़ोल्डर खोलें। आपको "लॉक" नाम की एक शून्य KB फ़ाइल देखनी चाहिए, इसे हटाने से समस्या ठीक हो जाएगी
मैं एसवीएन 1.7 का उपयोग करके सटीक एक ही मुद्दे पर आया था और ऊपर वर्णित सुधारों में से कोई भी काम नहीं किया।
सबसे महत्वपूर्ण, सुनिश्चित करें कि आप अपनी सभी संपादित सामग्री का बैकअप लें।
कुछ घंटे बिताने के बाद (सब कुछ नहीं घटाया क्योंकि मेरी शाखा का आकार 6gb से अधिक है), मैंने पाया कि आपकी शाखा के .svn फ़ोल्डर में "wc" नामक एक db फ़ाइल है।
किसी भी db प्रबंधक (मैं फ़ायरफ़ॉक्स के स्क्वैलाइट प्रबंधक प्लगइन का उपयोग करता है) का उपयोग करके db फ़ाइल खोलें और WC_LOCK तालिका में नेविगेट करें। इस तालिका में अधिग्रहित ताले के लिए प्रविष्टियां होंगी। तालिका से रिकॉर्ड हटाएं और आपका काम हो गया :)
जब मुझे यह समस्या होती है, तो मैं क्लीनअप कमांड को सीधे समस्या पथ पर चलाता हुआ पाता हूं जो आम तौर पर काम करता है। तो मैं फिर से काम की जड़ से सफाई चलाऊंगा, और यह कुछ अन्य निर्देशिका के बारे में शिकायत करेगा। और मैं सिर्फ तब तक दोहराता हूं जब तक कि यह शिकायत करना बंद न कर दे।
यदि आप एक विंडोज मशीन पर हैं, तो एक ब्राउज़र के माध्यम से रिपॉजिटरी देखें और आप एक ही फ़ाइल नाम के साथ दो फ़ाइलों को देख सकते हैं लेकिन विभिन्न मामलों का उपयोग कर सकते हैं। तोड़फोड़ मामले के प्रति संवेदनशील है और विंडोज ऐसा नहीं है कि आप एक लॉक प्राप्त कर सकते हैं जब विंडोज को लगता है कि यह उसी फ़ाइल को नीचे खींच रहा है और सबवर्सन नहीं करता है। रिपॉजिटरी पर डुप्लिकेट फ़ाइल नामों को हटाएं और फिर से प्रयास करें।
मैंने इसे केवल एक नया फ़ोल्डर बनाकर किया, परियोजना की जाँच की, अद्यतन की गई फ़ाइलों को नए फ़ोल्डर में कॉपी किया।
इसे नए सिरे से तय किया गया था।
क्या आप TortoiseSVN का उपयोग कर रहे हैं और अभी उन्नत हैं? 1.4 से 1.5 की ओर बढ़ने और रिबूट न होने से पहले मुझे वह समस्या हुई है। (रिबूट का प्रयास करें)।
रीबूट करने की आवश्यकता का कारण यह है कि कैश फ़ाइल को सभी कायरता मिलती है।
अन्यथा, बस आगे बढ़ने के लिए, उस वर्किंग कॉपी को एक नए फ़ोल्डर में निर्यात करें (.svn हिडन फोल्डर कॉपी न करें), प्रोजेक्ट को फिर से चेकआउट करें, और अपने सभी कोड को वापस ले जाएं, फिर अपनी ओर से आगे बढ़ें।
मुझे अक्सर ऐसा मुद्दा मिलता है। मेरा पैटर्न जो सफाई की समस्याओं का कारण बनता है।
हटाए गए फ़ाइल को खोलने पर छवि दर्शक बंद करना समस्या का हल करता है। हो सकता है कि अन्य सॉफ्टवेयर उसी तरह से सफाई को अवरुद्ध कर सकते हैं।
सामान्य रूप में। मेरा मानना है कि कंप्यूटर को पुनरारंभ करने से ऐसे मामलों में मदद मिल सकती है।
SVN आम तौर पर एक फ़ोल्डर में फ़ाइलों की अपनी आंतरिक संरचना (.svn / प्रोप-बेस) को अद्यतन करता है इससे पहले कि वास्तविक फ़ाइलों को रिपॉजिटरी से प्राप्त किया जाए। एक बार फाइल लाने के बाद यह साफ हो जाएगा। अक्सर त्रुटि को फेंक दिया जाता है क्योंकि अद्यतन के दौरान "अपडेट" विफल या समय से पहले रद्द कर दिया गया है।
अब अद्यतन काम करना चाहिए।
एक ही समस्या थी क्योंकि मैंने एक संस्करण-नियंत्रित फ़ोल्डर के तहत एक फ़ोल्डर निर्यात किया था। TortoiseSVN से फ़ोल्डर को हटाना था, तो फाइलसिस्टम से फ़ोल्डर को हटा दें (TortoiseSVN को असंबद्ध सबफ़ोल्डर पसंद नहीं है ... क्यों नहीं ???)
अपने समाधान को नष्ट न करें!
.svn फ़ोल्डर में आपके पास एक फ़ाइल होती है जिसे लॉक कहा जाता है यह 0 बाइट्स लंबा है
आप इन सभी फ़ाइलों को अपने समाधान में .svn फ़ोल्डरों से हटा सकते हैं और यह काम करेगा
इसने मेरे मामले में काम किया
फाइलों के इन-प्लेस अनविंडेशन और उसी स्थान पर एक ताजा चेकआउट ने मेरे लिए इस समस्या को हल कर दिया है।
TortoiseSVN में, इन-प्लेस अनर्गल करने के लिए, डायरेक्टरी ट्री में फाइल लिस्ट से वर्क कॉपी की रूट फोल्डर को राइट-ड्रैग करें, और पॉप-अप मेनू से "SVN एक्सपोर्टेड आइटम यहाँ" चुनें। TortoiseSVN नोटिस करता है कि गंतव्य स्रोत के समान है, और काम की नकल को हटाने का सुझाव देता है।
उबाऊ करने के बाद, एक ही फ़ोल्डर में एक नया चेकआउट करें (जिसमें अब आपके पास मौजूद सभी फाइलों की एक बिना कॉपी की नकल है)। TortoiseSVN आपको चेतावनी देगा कि आप एक मौजूदा फ़ोल्डर में देख रहे हैं, लेकिन आप आगे जा सकते हैं।
इसके बाद, बिना किसी अड़चन के क्लीनअप, अपडेट और अन्य ऑपरेशन काम किए। चूंकि उपरोक्त दोनों कदम स्थानीय संशोधनों को संरक्षित करते हैं, इसलिए जानकारी का कोई नुकसान नहीं होना चाहिए (लेकिन इससे पहले काम की प्रतिलिपि का समर्थन करना फिर भी एक अच्छा विचार हो सकता है)।
एक चेतावनी: यदि वर्किंग कॉपी में मिश्रित संस्करण या अनक्मिटेड प्रॉपर्टी में बदलाव होते हैं, तो वह जानकारी खो जाएगी। मेरे लिए, यह एक सामान्य घटना नहीं है, और एक भ्रष्ट कार्य की नकल को देखते हुए या बिना किसी संपत्ति परिवर्तन को खोए हुए, मैं बाद के लिए विकल्प चुनता हूं।
मुझे यह समस्या थी कि "क्लीन अप" ने कहां काम किया, लेकिन "अपडेट" विफल होता रहेगा। जो समाधान काम किया गया था वह विंडोज एक्सप्लोरर के माध्यम से फ़ोल्डर को हटाने के लिए था, न कि कछुआ एसवीएन के डिलीट (जो कि रिपॉजिटरी को करने के लिए कुछ के रूप में विलोपन को चिह्नित करता है, और फिर मैंने रिपॉजिटरी से फ़ोल्डर को अनिवार्य रूप से "अपडेट" करने के लिए एक "चेकआउट" किया था)।
O / S डिलीट और SVN डिलीट के बीच अंतर के बारे में अधिक जानकारी यहाँ: http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-rename.html
विशेष रूप से:
जब आप TortoiseSVN → किसी फ़ाइल को हटाते हैं, तो उसे तुरंत ही आपकी कार्यशील प्रति से हटा दिया जाता है और साथ ही अगले आदेश पर रिपॉजिटरी में हटाए जाने के लिए चिह्नित किया जाता है।
तथा:
यदि TortoiseSVN संदर्भ मेनू का उपयोग करने के बजाय एक्सप्लोरर के माध्यम से एक फ़ाइल हटा दी जाती है, तो प्रतिबद्ध संवाद उन फ़ाइलों को दिखाता है और आपको उन्हें कमिट करने से पहले संस्करण नियंत्रण से भी निकाल देता है। हालाँकि, यदि आप अपनी कार्यशील प्रति अपडेट करते हैं, तो सबवर्सन गुम हुई फ़ाइल को बदल देगा और उसे रिपॉजिटरी के नवीनतम संस्करण से बदल देगा।
यदि आप लिनक्स पर हैं, तो यह कोशिश करें:
find "/the/path/to/your/directory" -name .svn -type d | xargs chmod 0777 -R
फिर cleanup
उस डायरेक्टरी पर कमांड चलाएं , फिर अपडेट करने की कोशिश करें।
मैंने अपना मुद्दा ठीक करने के लिए निम्न कार्य किया:
समाधान एक्सप्लोरर में, प्रोजेक्ट पर राइट क्लिक करें, ओपनिंग सब-मेनू में तोड़फोड़ पर क्लिक करें और क्लीन-अप का चयन करें। यह समस्या को हल करेगा, जैसा कि यह मेरे लिए था। आशा है कि यह काम करेगा।