svn - कामकाजी प्रतिलिपि XXX लॉक और सफाई एसवीएन में विफल रही




tortoisesvn (20)

अपना समाधान मत हटाओ!

.svn फ़ोल्डर में आपके पास लॉक नामक एक फ़ाइल है, यह 0 बाइट लंबी है

आप इन सभी फ़ाइलों को अपने समाधान में सभी .svn फ़ोल्डर्स से हटा सकते हैं और यह काम करेगा

यह मेरे मामले में काम किया

जब मैं एक svn update करता हूं तो मुझे यह त्रुटि मिलती है:

कार्यरत प्रति XXXXXXXX लॉक कृपया "क्लीनअप" कमांड निष्पादित करें

जब मैं सफाई चलाता हूं, तो मुझे मिलता है

निम्न पथ को संसाधित करने में क्लीनअप विफल रहा: XXXXXXXX

मैं इस लूप से कैसे निकल सकता हूं?


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

find . -name 'lock' -exec rm -v {} \;

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

स्रोत: http://www.svnforum.org/2017/viewtopic.php?p=6068


एक दृष्टिकोण होगा:

  1. संपादित वस्तुओं को किसी अन्य स्थान पर कॉपी करें।
  2. समस्या पथ वाले फ़ोल्डर को हटाएं।
  3. Subversion के माध्यम से युक्त फ़ोल्डर अद्यतन करें।
  4. अपनी फ़ाइलों को वापस कॉपी करें या आवश्यकतानुसार परिवर्तन मर्ज करें।
  5. कमिट

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


एक ही समस्या थी क्योंकि मैंने संस्करण-नियंत्रित फ़ोल्डर के तहत एक फ़ोल्डर निर्यात किया था। TortoiseSVN से फ़ोल्डर को हटाना था, फिर फ़ाइल सिस्टम से फ़ोल्डर को हटाएं (TortoiseSVN को विचलित सबफ़ोल्डर पसंद नहीं है ... क्यों नहीं ???)


ऐसा करने का सबसे आसान तरीका छुपा फ़ोल्डर्स दिखा रहा है और फिर एसवीएन फ़ोल्डर खोलें। आपको "लॉक" नामक एक शून्य KB फ़ाइल को देखना चाहिए जिससे समस्या ठीक हो जाएगी


काम पर एक सहयोगी लगातार इस संदेश को देखता है, और उसके लिए ऐसा इसलिए होता है क्योंकि उसने एसवीएन संस्करण नियंत्रण के तहत एसवीएन से इसे हटाए बिना एक निर्देशिका हटा दी, और फिर उसी नाम के साथ संस्करण नियंत्रण के तहत अपनी जगह में एक नई निर्देशिका बनाई।

यदि यह आपकी समस्या है ...:

निर्देशिका को बदलने के तरीके के आधार पर इसे ठीक करने के विभिन्न तरीके हैं।

किसी भी तरह से, आपको इसकी आवश्यकता होगी:

ए) मौजूदा निर्देशिका को अस्थायी नाम पर पुनर्नामित करें

बी) फ़ाइल सिस्टम से हटाई गई निर्देशिका को पुनर्प्राप्त करने के लिए एक एसवीएन वापस करें, लेकिन एसवीएन से नहीं

वहां से, आप या तो करेंगे

ए) प्रासंगिक फ़ाइलों को उस निर्देशिका में कॉपी करें जो हटा दिया गया था

बी) यदि आपके पास निर्देशिका में सामग्रियों का महत्वपूर्ण परिवर्तन था, तो मूल रूप से एक एसवीएन हटाएं, अपनी नई निर्देशिका को वांछित नाम पर वापस बदलें, उसके बाद संस्करण नियंत्रण के तहत एक एसवीएन जोड़ें।


खोज शुरू करें .... लॉक ... सूचीबद्ध सभी फ़ाइलों का चयन करें और हटाएं .. फिक्स्ड


जब मुझे यह समस्या हो, तो मुझे आमतौर पर समस्या पथ पर क्लीनअप कमांड चलाने लगता है। फिर मैं फिर से काम कर रहे रूट से क्लीनअप चलाऊंगा, और यह किसी अन्य निर्देशिका के बारे में शिकायत करेगा। और जब तक यह शिकायत बंद नहीं करता तब तक मैं दोहराता हूं।


मुझे अक्सर ऐसा कोई मुद्दा मिलता है। मेरा पैटर्न जो क्लीनअप समस्याओं का कारण बनता है।

  1. मैं दर्शक में छवि फ़ाइल खोलता हूं।
  2. मैं छवि फ़ाइल / फ़ोल्डर हटा देता हूँ।
  3. मैं प्रतिबद्ध / अद्यतन करने की कोशिश कर रहा हूं

बंद छवि दर्शक जहां हटाई गई फ़ाइल खोली जाती है, समस्या हल करती है। हो सकता है कि अन्य सॉफ़्टवेयर उसी तरह क्लीनअप को अवरुद्ध कर सके।

सामान्य रूप में। मेरा मानना ​​है कि कंप्यूटर को पुनरारंभ करने से ऐसे मामलों में मदद मिल सकती है।


मुझे यह समस्या थी क्योंकि बाहरी फ़ोल्डर्स मौजूदा फ़ोल्डर में लिंक नहीं करना चाहते हैं। यदि आप एक svn: externals प्रॉपर्टी लाइन जोड़ते हैं जहां गंतव्य एक मौजूदा (संस्करण या गैर संस्करण वाला) फ़ोल्डर है, तो आपको एसवीएन वर्डिंग कॉपी लॉक त्रुटि मिल जाएगी। यहां एक क्लीनअप आपको यह भी बताएगा कि हमेशा कुछ ठीक है लेकिन अभी भी अपडेट नहीं होगा।

समाधान: रिपॉजिटरी से परेशान फ़ोल्डर को हटाएं और रूट फ़ोल्डर में अद्यतन करें जहां svn: बाहरी गुण सेट है। यह फ़ोल्डर बना देगा और सभी ठीक हो जाएंगे।

यह समस्या मेरे लिए उभरी क्योंकि svn: फ़ाइलों के बाहरी के लिए गंतव्य फ़ोल्डर को संस्करण नियंत्रित करने की आवश्यकता होती है। मैंने देखा कि यह विभिन्न भंडारों में काम नहीं करता है, मैं बाहरी फाइलों से बाहरी फ़ोल्डर में बदल गया और इस गड़बड़ी में आया।


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

इसके आस-पास पहुंचने के लिए, चूंकि मैंने अभी भी फ़ोल्डर बनाया है, इसलिए मैंने इसे भंडार में हटा दिया, और फिर एक प्रतिबद्ध किया। यह ठीक काम किया।

चूंकि मैंने इसे विजुअल स्टूडियो के बाहर किया था, इसलिए मुझे फिर से सब कुछ समझने के लिए विजुअल स्टूडियो को पुनरारंभ करना पड़ा।


मेरे मामले में मैंने इसे WC_LOCK तालिका में SQLite ".svn \ wc" फ़ाइल लॉक रिकॉर्ड में मैन्युअल रूप से रिकॉर्ड हटाकर हल किया।

मैंने SQLite संपादक के साथ "डब्ल्यूसी" फ़ाइल खोली और निष्पादित किया

delete from WC_LOCK

eakkas की टिप्पणी के बाद, आपको WORK_QUEUE तालिका से सभी प्रविष्टियों को भी हटाना पड़ सकता है।


मेरे लिए, यह चाल मेरी कामकाजी प्रतिलिपि के शीर्ष पर svn cleanup चलाने के लिए थी, उस फ़ोल्डर में नहीं जहां मैं समस्या से पहले पूरे समय काम कर रहा था।


मेरे लिए, यह वास्तव में कछुए की गलती थी, तरह। कछुआ ने अभी शिकायत की है कि "साफ नहीं हो सकता है, साफ हो सकता है", लेकिन जब मैंने कमांड लाइन (एसवीएन क्लीनअप) चलाया, तो उसने स्पष्ट रूप से मुझे बताया कि यह उपयोग में आने वाली कुछ फाइलों को हटा नहीं सका, जिस समाधान का स्पष्ट था। एक बार जब मैंने विजुअल स्टूडियो (जो फाइलें खोल रहा था) बंद कर दिया, तो सफाई ने ठीक काम किया।

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


मैंने अपनी समस्या को ठीक करने के लिए निम्नलिखित किया:

  1. फ़ोल्डर नाम के सामने "_" रख कर अपमानजनक फ़ोल्डर का नाम बदलें।
  2. मूल फ़ोल्डर का "क्लीन अप" किया था।
  3. अपमानजनक फ़ोल्डर को मूल नाम पर वापस नामित किया गया।
  4. एक प्रतिबद्ध किया

मैंने इसे एक नया फ़ोल्डर बनाकर, प्रोजेक्ट की जांच करके, अद्यतन फ़ाइलों को नए फ़ोल्डर में कॉपी किया।

यह एक ताजा चेकआउट के साथ तय किया गया था।


यदि आप लिनक्स पर हैं, तो इसे आजमाएं:

find "/the/path/to/your/directory" -name .svn -type d | xargs chmod 0777 -R

फिर उस निर्देशिका पर cleanup कमांड चलाएं, फिर अद्यतन करने का प्रयास करें।


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


सबसे आसान तरीका कभी:

  1. परियोजना के अभिभावक निर्देशिका (फ़ोल्डर) पर जाएं।
  2. प्रेसिड राइट क्लिक करें
  3. TortoiseSVN पर दबाएं, फिर साफ़ करें दबाएं ...
  4. साफ-सफाई संवाद स्वचालित रूप से दिखाई देगा
  5. Clean up working copy status करें, Break locks , Fix time stamps , Vacuum pristine copies , Refresh shell overlays , Include externals Clean up working copy status
  6. ठीक है ठीक है

आपने अपना काम सफलतापूर्वक किया।

अपने संदर्भ के लिए स्क्रीन शॉट्स की जांच करें।

पहला कदम:

दूसरा चरण: ब्रेक लॉक विकल्प सक्षम करें (क्लीनअप पॉपअप विंडो में दूसरा चेक बॉक्स)

उम्मीद है कि इससे आपको बहुत मदद मिलेगी।


समाधान एक्सप्लोरर में, प्रोजेक्ट पर राइट क्लिक करें, ओपनिंग उप-मेन्यू में सबवर्सन पर क्लिक करें और क्लीन-अप का चयन करें। यह समस्या को हल करेगा, जैसा कि मेरे लिए किया गया था। उम्मीद है कि यह काम करेगा।





tortoisesvn