java - मैं 'एसवीएन क्यों प्राप्त कर रहा हूं: वर्किंग कॉपी XXXX लॉक; 'सफाई' करने का प्रयास करें?




eclipse svn (8)

यदि आपने पहले ग्रहण (सबवर्जन, विध्वंसक) में एसवीएन उपकरण के साथ काम किया है, तो आप शायद 'काम करने की प्रतिलिपि' XXX 'लॉक ... "त्रुटि से परिचित हैं।

मुझे इस समस्या के लिए एक कामकाज के साथ एक बहुत ही उपयोगी पोस्ट मिली: कार्यरत प्रति XXX लॉक और क्लीनअप एसवीएन में विफल रहा

कामकाज के रूप में महान है, यह बार-बार ऐसा करने का दर्द होता है। क्या किसी को पता है कि मुझे यह त्रुटि क्यों मिल रही है और इसे रोकने के लिए मैं क्या कदम उठा सकता हूं?

संदर्भ: मैं एक ग्रहण प्लगइन बना रहा हूं जिसमें एसवीएन घटनाओं को सुनना शामिल है, इसलिए इस प्लगइन का परीक्षण करने में, मैं लगातार कार्यक्षेत्र खोल रहा हूं और बंद कर रहा हूं। जब भी मैं वर्कस्पेस खोलता हूं तो मैं आम तौर पर 1 या 2 करता हूं। हर बार अक्सर प्रतिबद्धता विफल हो जाएगी और मुझे 'काम करने की प्रतिलिपि लॉक' त्रुटि मिल जाएगी। मैं इस त्रुटि के लिए अब और नहीं होने के लिए प्यार करूंगा, इसलिए किसी भी सलाह की सराहना की जाती है।

धन्यवाद!


  1. परियोजना का चयन करें
  2. चयनित परियोजना पर राइट क्लिक करें
  3. टीम -> सफाई

समस्या सुलझ गयी।

नोट: उपरोक्त कदम केवल ग्रहण (इंडिगो पैकेज) काम करेंगे


अधिक अन्वेषण और परीक्षण के बाद, ऐसा लगता है कि यह समस्या प्लगइन को डिबग करने और ब्रेकपॉइंट्स का उपयोग करके हुई थी। एसवीएन / उपclip जाहिर है कि उनके निष्पादन के माध्यम से ब्रेकपॉइंट्स मिडवे होने पसंद नहीं आया और नतीजतन यह ताला फाइलें बनाई जा रही थीं। जैसे ही मैंने प्लगइन चलाया, जल्द ही यह समस्या गायब हो गई।


ऐसा तब होगा जब आपके प्रोजेक्ट में आपके फ़ोल्डरों में से कुछ में कुछ गलत हो गया था। आपको विशिष्ट फ़ोल्डर के नीचे svn cleanup को लॉक और निष्पादित करने वाले सटीक फ़ोल्डर को खोजने की आवश्यकता है। आप इसे निम्नानुसार हल कर सकते हैं:

  1. यह पता लगाने के लिए कि कौन सा फ़ोल्डर गलत है, svn commit कमांड चलाएं।
  2. निर्देशिका को उस फ़ोल्डर में बदलें और svn cleanup चलाएं। फिर यह हो गया।

निम्नलिखित लॉक काम करने वाली प्रतिलिपि अनलॉक करनी चाहिए (svn क्लाइंट संस्करण 1.6.11 और एलिप्स संस्करण पर परीक्षण: Mars.2 रिलीज (4.5.2))

चरण 1: (कार्यशील प्रतिलिपि निर्देशिका पर जाएं) $ cd working_copy_dir

चरण 2: (svn sqlite डेटाबेस से कनेक्ट करें) $ sqlite3 .svn / wc.db

चरण 3: (तालिका WC_LOCK से सभी रिकॉर्ड्स हटाएं) sqlite> WC_LOCK से हटाएं;

चरण 4: (स्क्लाइट 3 डेटाबेस से डिस्कनेक्ट करें) sqlite> ctrl + d

चरण 5: (ग्रहण से) अपनी कार्यशील प्रतिलिपि पर राइट क्लिक करें, फिर टीम -> रीफ्रेश / क्लीनअप पर क्लिक करें


यह तब हुआ जब मैंने एक और उपवर्तन परियोजना से एक निर्देशिका की प्रतिलिपि बनाई और प्रतिबद्ध करने की कोशिश की। नीलामी उस निर्देशिका के अंदर। एसवीएन निदेशक को हटाना था जिसे मैं प्रतिबद्ध करना चाहता था।


सुनिश्चित करें कि कंसोल कहता है कि आप वास्तव में सफाई करते हैं। उदाहरण के लिए यदि एक उपफोल्डर (एक पैकेज) लॉक है:

   svn: E155004: Commit failed (details follow):
  svn: E155004: Working copy 'C:\Users\laura\workspace\tparser\src\de\test\order' locked
  svn: E155004: 'C:\Users\laura\workspace\tparser\src\de\test\order' is already locked.

सफाई सी: / उपयोगकर्ता / लिपारालोल / वर्कस्पेस / tparser / src / de / mc / etn / parsers / order

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


समाधान: चरण 1: "लॉक" फ़ाइल को निकालना है जो ".svn" छिपी हुई फ़ाइल के अंतर्गत मौजूद है। चरण 2: यदि कोई "लॉक" फ़ाइल नहीं है तो आपको "we.db" दिखाई देगा, आपको यह डेटाबेस खोलना होगा और निम्न तालिकाओं से सामग्री को हटाना होगा - लॉक - wc_lock चरण 3: अपनी प्रोजेक्ट को साफ़ करें चरण 4: कोशिश करें अब प्रतिबद्ध करो चरण 5: हो गया।


आम तौर पर एक .lock फ़ाइल बनाई जाती है और यह इस फ़ाइल के अस्तित्व की जांच करने वाले लॉक / अनलॉक स्थिति का निर्णय लेती है। मुझे लगता है कि अगर आप इसे हटाते हैं। केवल फ़ाइल को .lock करें, तो समस्या दूर हो जाएगी।





subclipse