एसवीएन - अपडेट करते समय चेकसम मिसमैच


122

जब मैं तोड़फोड़ से कुछ फ़ाइलों को अद्यतन करने का प्रयास करता हूं, तो मुझे त्रुटि मिलती है:

org.tigris.subversion.javahl.ClientException: 
Checksum mismatch while updating 'D:\WWW\Project\\.svn\text-base\import.php.svn-base'; expected: '3f9fd4dd7d1a0304d8020f73300a3e07', actual: 'cd669dce5300d7035eccb543461a961e'

मुझे यह क्यों मिलता है? मेरे द्वारा यह कैसे किया जा सकता है?

जवाबों:


70

इसे ठीक करने का सबसे आसान तरीका (यदि आपके पास कई परिवर्तन नहीं हैं) अपने परिवर्तन को किसी अन्य निर्देशिका में कॉपी करना है, उस निर्देशिका को हटाएं जहां आपकी परियोजना की जांच की गई है, और परियोजना को फिर से चेकआउट करें।

फिर अपने परिवर्तनों को वापस कॉपी करें (किसी भी .svan फ़ोल्डर की प्रतिलिपि न करें) और प्रतिबद्ध करें, और जारी रखें।


9
मैंने बस उस फ़ोल्डर को हटा दिया जहां एक समस्या फ़ाइल थी और मैंने पूरी परियोजना को अपडेट किया। अब यह ठीक लग रहा है।
कोरलेक एम।

+1 दूसरा विकल्प मुझे मिला जिसे मैंने svn डेटाबेस को हैक करते हुए देखा, बहुत आसान है
सीनडाउन

@SeanDowney कैसे करना है?
arvindwill

@arvindwill क्षमा करें, मैं अपनी टिप्पणी में बहुत स्पष्ट नहीं था, यह तरीका बहुत आसान है। यहाँ डरावना विकल्प है: maymay.net/blog/2008/06/17/…
SeanDowney

2
यह बिल्कुल भी एक निश्चित निर्धारण नहीं है। आप हमेशा अपने सभी स्थानीय डेटा को हटा सकते हैं और रेपो की एक नई प्रति के साथ शुरुआत कर सकते हैं।
टिम

197

यदि आप SVN 1.7+ का उपयोग कर रहे हैं, तो यहाँ वर्णित एक समाधान है

बस फिर से बनाने के लिए:

  1. समस्याओं के कारण फ़ाइल के साथ फ़ोल्डर पर जाएं
  2. आदेश निष्पादित करें svn update --set-depth empty(नोट: यह आपकी फ़ाइलों को हटा देगा, इसलिए पहले एक प्रतिलिपि बनाएँ!)
  3. आदेश निष्पादित करें svn update --set-depth infinity

17
जबकि यह मेरे लिए काम करता है, ध्यान दें "svn अपडेट --सेट-डेप्थ खाली" उस रास्ते से सब कुछ हटा देगा, इसलिए पहले एक कॉपी बनाएं
ट्रिस्टनबेली

3
यह एक दूरस्थ स्थान पर एक विशाल भंडार को ठीक करने के लिए बहुत अच्छा काम करता है। एक नया चेकआउट करते समय, एक घंटे से अधिक समय लगा होगा; इसमें कुछ मिनट लगे।
ब्रायन गिलेस्पी

नमस्ते मैं svn ग्राहक के रूप में खिड़की और tortoisesvn का उपयोग कर रहा हूँ .. मैं अपने समाधान की कोशिश कर रहा था। लेकिन यह अभी भी isse दिखा
अमित बेरा

बस। पुराने निर्देशिका को नए भंडार से पुराने में बदल दिया, यह काम किया :)
harishkumar329

यह मेरे लिए बहुत अच्छा काम किया, धन्यवाद! यह ध्यान देने योग्य बात है कि # 1 वास्तविक फ़ोल्डर (या फ़ाइल) के लिए नीचे की ओर है जो समस्या पैदा कर रहा है। फिर आपको ज्यादा अपडेट करने की जरूरत नहीं है। मेरे पास कुछ दर्जन फाइलों के साथ एक फ़ोल्डर था जिसमें मैंने फ़ोल्डर पर "अपडेट टू-> केवल इस आइटम" को कछुआ का उपयोग किया था और फिर इसे वापस पाने के लिए "अपडेट टू-> पूरी तरह से पुनरावर्ती"। फिर भी हर कोई सावधान हो जाता है कि यह उस फोल्डर की फाइलों को डिलीट कर देता है! कई-गीगाबाइट रेपो और पतले ट्यून -सेट-डेप्थ के साथ एक धीमी वीपीएन लिंक पर, "मानक" समाधान बस बेकार था।
डैश-टॉम-बैंग

6

मुझे सिलेर प्रॉब्लम थी। मुख्य प्रदाता एंटीवायरस "FortiClient" (एंटीवायरस + वीपीएन रोगी) था। जब मैंने इसे निष्क्रिय कर दिया - सभी अपडेट / चेकआउट सही ढंग से किए गए थे


1
यह एकमात्र उत्तर है जिसने मेरी समस्या को हल किया। मैं यह कभी नहीं सोच सकता था। धन्यवाद!
समय

5

मुझे इस मुद्दे को ठीक करने का एक आसान तरीका मिला। आप इसे सीधे ग्रहण से नहीं कर सकते। कदम:

  1. विंडोज़ में कार्यक्षेत्र फ़ोल्डर संरचना पर नेविगेट करें
  2. फ़ोल्डर का नाम बदलें
  3. ग्रहण में ताज़ा
  4. अब फ़ोल्डर और फ़ाइलों को ग्रहण से परियोजना से हटा दिया जाएगा और नए नामांकित फ़ोल्डर के तहत दिखाई देगा
  5. अब "Respository के साथ सिंक्रनाइज़ करें" विकल्प का प्रयास करें।

यह .svnfolder में पाठ बेस फ़ोल्डर को पुनर्स्थापित करेगा। चेकसम मिसमैच अपडेट करते समय त्रुटि सामने नहीं आएगी।


1

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


1

मेरे पास एक ही त्रुटि थी लेकिन एक फ़ाइल के लिए। IntelliJ IDEA में मैं फ़ाइल की एक प्रतिलिपि बनाने में सक्षम था, फिर प्रोजेक्ट में जाऊं और प्रश्न में फ़ाइल को हटा दूं, फिर सफलतापूर्वक प्रतिबद्ध करें। फिर, मैंने उसी नाम से एक नई फ़ाइल बनाई और उसमें सामग्री वापस कॉपी की। मुझे लगता है कि आप संशोधन इतिहास खो देंगे, लेकिन यह काम करता है।


1

यदि आपके पास कोई सहकर्मी आपके साथ काम कर रहा है:

1) उसे समस्या के कारण फ़ाइल का नाम बदलने के लिए कहें और commit

2) आप update(अब आप अलग नाम के साथ अमान्य चेकसम के साथ फाइल देखते हैं)

3) इसका नाम बदलकर इसके मूल नाम पर वापस रख दें

4) commit(और updateअपने प्रारंभिक अवस्था में फ़ाइल नाम वापस लेने के लिए अपने सहयोगी से पूछें )

इससे मेरे लिए समस्या हल हो गई।


1

मुझे बहुत अच्छा समाधान मिला, कि मेरी समस्या हल हो गई । चाल svn DB (wc.db) को संपादित करने के लिए है।

इस पृष्ठ पर समाधान का वर्णन किया गया है: http://www.exchangeconcept.com/2015/01/svn-e155037-prepret-operation-has-not-finished-run-cleanup-if-it-was-interrupted/

यदि लिंक नीचे है, तो बस इस निर्देश को देखें और उसका पालन करें: यहाँ छवि विवरण दर्ज करें

मैंने http://sqlitebrowser.org/ से sqlite टूल का उपयोग किया ।


1

मैं इस पृष्ठ के सभी समाधानों को विभाजित करने और काम नहीं करने के बाद कछुआ SVN का उपयोग कर रहा हूं,

मैं अंत में समस्या फ़ाइल का बैकअप लेता हूं। और Repo Browserइसमें समस्या फ़ाइल को हटाने का उपयोग करें , फिर स्थानीय फ़ोल्डर को अपडेट करें ताकि स्थानीय फ़ोल्डर में फ़ाइल हटा दी जाए। फिर बैकअप फ़ाइल को वापस कॉपी करें और Add > Commitफिर मैं सफलतापूर्वक अपडेट कर सकता हूं।

इस पद्धति का एकमात्र नुकसान यह है कि इस फ़ाइल का इतिहास हटा दिया जाएगा।


0

इसके लिए निम्न चरणों का पालन करें:

  1. .Svn निर्देशिका में स्थित प्रविष्टियाँ फ़ाइल खोलें जहाँ आपको त्रुटि मिल रही है।
  2. त्रुटि देने वाली फ़ाइल के लिए प्रविष्टि ढूँढें और त्रुटि में वास्तविक मान के साथ अपेक्षित मान बदलें।
  3. अब सिंक्रनाइज़ करें और अपडेट करने का प्रयास करें।

अगर यह अभी भी काम नहीं करता है। इन्हें कोशिश करें। हालांकि यह सिर्फ एक समाधान है:

  1. अपने सिस्टम से फाइल को डिलीट करें।
  2. प्रविष्टियों की फ़ाइल से फ़ाइल का प्रवेश हटाएं। (विशेष वर्णों तक फ़ाइल के नाम से शुरू)।
  3. अब फाइल को सिंक्रोनाइज़ और अपडेट करें।

यह भंडार से फ़ाइल का नवीनतम संस्करण प्राप्त करेगा और सभी संघर्षों को हल किया जाएगा।


0

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


0

फ़ाइल को हटाने की कोशिश करें और .svn निर्देशिका के तहत फ़ाइल प्रविष्टियों से फ़ाइल संदर्भ को हटा दें


0

मेरे पास एक समान त्रुटि थी और निम्नानुसार थी:

(मेरा 'फिक्स' एक धारणा पर आधारित है जो सही हो सकता है या नहीं भी हो सकता है क्योंकि मुझे नहीं पता है कि तोड़फोड़ आंतरिक रूप से कैसे काम करती है, लेकिन यह निश्चित रूप से मेरे लिए काम करती है)

मैं यह मान रहा हूँ कि .svn \ text-base \ import.php.svn-base को नवीनतम प्रतिबद्ध से मेल खाने की उम्मीद है।

जब मैंने उस फ़ाइल की जाँच की जिस पर मुझे त्रुटि हो रही थी, तो आधार फ़ाइल रिपॉजिटरी में नवीनतम प्रतिबद्ध से मेल नहीं खाती थी।

मैंने नवीनतम प्रतिबद्ध से पाठ की प्रतिलिपि बनाई और उस ssv फ़ोल्डर में सहेजा, गलत फ़ाइल की जगह (मेरी मान्यताओं के गलत होने पर बैकअप प्रतिलिपि बनाई गई)। (फ़ाइल केवल पढ़ने के लिए चिह्नित की गई थी, मैंने उस ध्वज को साफ़ कर दिया था, ओवरवॉट किया और इसे केवल पढ़ने के लिए वापस सेट किया)

मैं तब सफलतापूर्वक करने में सक्षम था।


0

मेरा समाधान था:

  1. फ़ाइल सिस्टम से svn सफाई निष्पादित करें
  2. किसी अन्य शाखा में स्विच करें
  3. उलझनों को सुलझाएं
  4. "समस्याग्रस्त" शाखा में स्विच करें
  5. स्प्रिंग टूल सूट से साफ सफाई
  6. परियोजना अद्यतन निष्पादित करें

0

1. 'उलट' 'इस आइटम को केवल निर्देशिका के तहत चेक करें' का उपयोग करें। 2. फिर से जाँच करें 'पूरी तरह से पुनरावर्ती'

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