2011-10-16 8 views
9

यह मैं क्या मिलता है जब मैं एचजी की पुष्टि करते हैं:Mercurial में टूटा हुआ revlog और अनाथ revlog - मरम्मत कैसे करें?

repository uses revlog format 1 
checking changesets 
checking manifests 
crosschecking files in changesets and manifests 
checking files 
includes/base/class/[email protected]: broken revlog! (index data/includes/base/class/ViewInstanceAdapter.class.php.i is corrupted) 
warning: orphan revlog 'data/includes/base/class/ViewInstanceAdapter.class.php.i' 
158 files, 61 changesets, 270 total revisions 
1 warnings encountered! 
1 integrity errors encountered! 
(first damaged changeset appears to be 7) 

मैं एक लंबे समय के लिए मर्क्युरियल का उपयोग नहीं करते और मुझे समझ नहीं आता कि इसका क्या मतलब।

(मैं TortoiseHg का उपयोग कर खिड़कियों पर हूँ, और परियोजना स्थानीय है केवल)

+0

किसी भी मौका इस भंडार ड्रॉपबॉक्स या समान तुल्यकालन फ़ोल्डर में है? –

+0

नहीं, मैं अकेले काम कर रहा था और मैंने इसे कभी साझा नहीं किया है – Leto

+0

'hg verify -v', लॉग दिखाएं। इस रेपो को क्लोन करने और क्लोन सत्यापित करने का प्रयास करें - गायब होने की संभावनाएं –

उत्तर

6

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

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

एक तीसरा विकल्प जो आप कोशिश कर सकते हैं वह है अपने भंडार (hg convert repo repo-copy) पर एक Mercurial-Mercurial रूपांतरण चलाने के लिए; एक क्रियात्मक रूपांतरण को परिवर्तन आईडी को बरकरार रखना चाहिए, हालांकि यह शायद एक ही समस्या में भाग लेगा। ViewInstanceAdapter फ़ाइल को फ़िल्टर करने के लिए आप filemap निर्दिष्ट करने का भी प्रयास कर सकते हैं।

क्योंकि क्षतिग्रस्त परिवर्तन इतना पुराना है, और यह देखते हुए कि Mercurial एक संलग्न-केवल लेखन विधि का उपयोग करता है, इस समस्या के संभावित कारण हार्डवेयर विफलता या किसी प्रकार की यादृच्छिक डिस्क भ्रष्टाचार है।

ध्यान दें कि Mercurial बैकअप सिस्टम नहीं है और यह अनावश्यकता प्रदान नहीं करता है। लगातार बैक-अप बनाना (जो Mercurial के मामले में 'एचजी पुश' के रूप में आसान है) यह सुनिश्चित करने का एकमात्र तरीका है कि आप अपना बहुमूल्य कोड खोना नहीं चाहते हैं।

एक वैकल्पिक कारण जो मुझे लगता है मुझे आपको वायरस स्कैनर या विंडोज इंडेक्सिंग सेवा के बारे में चेतावनी देना चाहिए। ये लॉक फाइलें एक निश्चित तरीके से होती हैं जो उन्हें कम समय की विंडो के दौरान हटाए जाने से रोकती है। यद्यपि Mercurial मजबूत होने के लिए सबसे अच्छा है, लेकिन सभी मामलों के खिलाफ बचाव करना मुश्किल है। अपने भंडारों को सफेद सूची में अनुशंसा की जाती है, this note देखें।

+0

ठीक है, जैसा कि आपने कहा है, दूषित फ़ाइल अब सबसे अधिक मौजूद नहीं है कोड का हालिया संस्करण, इसलिए यह सामग्री महत्वपूर्ण नहीं है। मैं बस फिर से काम कर रहा हूं। – Leto

+0

उस स्थिति में, आप फ़ाइलमैप के साथ कनवर्ट करने का भी प्रयास कर सकते हैं जो इसे निर्दिष्ट फ़ाइल को अनदेखा कर देता है, मैं जवाब अपडेट करूंगा इसके साथ। लेकिन यह अभी भी मुझे स्पष्ट नहीं है कि अगर आपके पास अपनी रिपोजिटरी की कोई प्रतियां/केंद्रीय स्टोर है; यदि आप करते हैं, और सिर्फ मर्कुरियल फिर से काम करना चाहते हैं, तो ताजा क्लोन क्यों न बनाएं और फिर अपने काम की सामग्री को कॉपी न करें इसके शीर्ष पर निर्देशिका (.hg फ़ाइल को अनदेखा कर रहा है)? समस्या को ठीक करने के लिए एक ब्रूट फोर्स तरीका का थोड़ा सा, और आपको अपने द्वारा किए गए किसी भी स्थानीय बदलाव को फिर से प्रतिबद्ध करना होगा, लेकिन यह नौकरी करेगा। –

+0

मुझे अभी मिलाकोई समस्या नहीं के साथ एक पुराना बैकअप ( Leto

1

मुझे समस्या समाधान (लॉरेन होल्स्ट के लिए धन्यवाद) केवल तभी मिला जब आपके पास समस्या संशोधन सहित कोई क्लीन बैक अप (कोई त्रुटि नहीं है)।

मेरी समस्या राजस्व अंक में 7 है और मैं जब तक राजस्व 18.

कदम एक बैकअप है:

  • क्लोन पिछले आम राजस्व पर बैकअप भंडार (यहां यह है 18)

  • पुल टूट क्लोन एक में भंडार revs (अब आप दो सिर है लेकिन निश्चित रूप से कार्यशील निर्देशिका पर कोई संशोधन)

  • अद्यतन सबसे हाल ही में संशोधन (टिप) के भंडार क्लोन

आपके पास अब एक काम कर .hg dir :)

संबंधित मुद्दे