2008-12-03 10 views
15

जब प्राप्त SVN चल नदी के ऊपर SVN भंडार से नवीनतम नई शाखाओं को खींचने के लिए लाने मैं यह त्रुटि आई:गंभीर त्रुटि एक Git SVN के दौरान एक पेड़ वस्तु खोल लाने

$ git svn fetch 
fatal: failed to unpack tree object 5ecb324e8b8fcb918acb253f33edc6ce49e49e0d 
read-tree 5ecb324e8b8fcb918acb253f33edc6ce49e49e0d: command returned error: 128 

अब जब कि पर svn Git पर हर प्रयास स्थानीय रेपो एक ही त्रुटि में परिणाम। मूल रूप से मैं गिट संस्करण 1.5.6.4_0 चला रहा था और त्रुटि के बाद मैंने 1.6.0.2_2 को अपडेट करने का प्रयास किया और समस्या अभी भी बनी हुई है।

क्या इस भ्रष्टाचार को साफ करने का कोई तरीका है? अपस्ट्रीम रिपोजिटरी का एक नया गिट एसवीएन क्लोन ठीक है, लेकिन मैं अपने मौजूदा सेटअप को संरक्षित करना चाहता हूं। मैंने दस्तावेज़ों को देखा है और बिना किसी किस्मत के समस्या के लिए गुगल किया है।

उत्तर

3

इसके लिए सबसे अधिक संभावना कारण फ़ाइल या प्रतिबद्ध है (कि पेड़ संदर्भ) भ्रष्ट या गायब है। या पेड़ खुद दूषित हो सकता है। साथ की जाँच करें:

git fsck --unreachable HEAD $(cat .git/refs/heads/*) 

यह "झूलते" फ़ाइलें, जो आप के बारे में परवाह नहीं है के एक झुंड दिखाई देगा; दूषित फाइलें "अमान्य SHA1" या ऐसी कुछ चीज़ की रिपोर्ट करेंगी। मुझे नहीं पता कि एक लापता फाइल कैसे रिपोर्ट करेगी। उन्हें बदलने के लिए अपने अपस्ट्रीम रेपो से किसी भ्रष्ट आइटम और rsync हटाएं।

+0

जानकारी के लिए धन्यवाद। दुर्भाग्यवश, कोई भ्रष्ट फाइलें दिखाई नहीं दे रही हैं, केवल कुछ हद तक पहुंचने योग्य पेड़/काम/ब्लब्स। एक एसवीएन रेपो के सामने के अंत के रूप में गिट का उपयोग करना मेरे पास रिकवरी के लिए rsync के लिए अपस्ट्रीम गिट नहीं है। मैंने ताजा गिट एसवीएन क्लोन से rsync की कोशिश की, लेकिन मेरी सभी स्थानीय शाखाएं खो दीं। – notascleveras

+0

किसी भी समस्या के साथ 2 से 3 महीने पहले समाचार समूह (या शायद मेलिंग सूची) में एक रिपोर्ट थी, जब उन्होंने अपने रेपो को दोबारा हटा दिया। मैं रिपोर्ट नहीं ढूंढ पा रहा हूं, जिसका शायद मतलब है कि यह बिल्कुल वही त्रुटि संदेश नहीं था। – Paul

+0

मैंने अभी repacking की कोशिश की। कोई भाग्य नहीं। अभी के लिए मैं ताजा गिट svn क्लोन पर जा रहा हूँ। सुझावों के लिए धन्यवाद। – notascleveras

5

मुझे एक ही समस्या थी। यह एक विशेष एसवीएन संशोधन के कारण है कि गिट-एसवीएन किसी भी तरह से पढ़ या सौदा नहीं कर सकता है। दोषी जब तक प्रत्येक संशोधन 42 से शुरू होने वाले को हासिल करेगा (जैसे कि 50), तो पता चलता है - git svn fetch:

  1. एक संशोधन काम करने के लिए जाना जाता है के लिए रिवाइंड: git svn reset -r 42
  2. पुन: प्रयास करें लाने यहाँ मैं क्या क्रम में करने की कोशिश की है एक ही त्रुटि संदेश।
  3. अभिभावक को प्राप्त करें: git svn fetch --parent - मुझसे मत पूछें क्यों। इससे अधिक संशोधन मिलते हैं। कोई विचार नहीं कि यह प्रासंगिक है या नहीं।
  4. fetch पुनः प्रयास करें: git svn fetch - अभी भी काम नहीं करता है।
  5. अगले संशोधनों में से प्रत्येक को प्राप्त करें:
    1. git svn fetch -r 50 - वर्क्स।
    2. git svn fetch -r 51 - कोई त्रुटि संदेश नहीं है, आगे बढ़ें।
    3. git svn fetch -r xx - त्रुटि संदेश दिखाता है, यह खराब संशोधन है। परवाह नहीं।
    4. git svn fetch -r xx+1 - काम करता है।
  6. fetch पुनः प्रयास करें: git svn fetch - काम करता है! अधिक संशोधन लाने के लिए शुरू होता है।

प्रक्रिया को साफ किया जाना चाहिए (शायद पहले चरण के पास), लेकिन यह मेरे लिए एक ताजा क्लोन के साथ फिर से शुरू किए बिना काम किया जाना चाहिए।

+0

यह काम किया! लेकिन मेरे मामले में मैं "समस्याग्रस्त" संशोधन लाने में सक्षम था। मैं बस एक्स -1 संशोधन में संशोधन करता हूं (एक्स नवीनतम संशोधन है) और एक्स संशोधन के मुकाबले, जो "गीता svn fetch" से काम करता है और बस काम करता है। क्या कोई यह समझा सकता है कि यह क्या तय करता है? गिट एसवीएन रीसेट सिर्फ एक दूषित स्थानीय फाइल को हटा सकता है? – TCS

3

मुझे एक नई एसवीएन शाखा बनाने के बाद एक ही त्रुटि संदेश का अनुभव हुआ। मैं पूरी ".git/SVN" निर्देशिका को हटाने और फिर SVN से प्राप्त करने में कठिनाई द्वारा समस्या को हल करने में सक्षम था:

$ rm -rf .git/svn 
$ git svn fetch 
Rebuilding .git/svn/refs/remotes/trunk/.rev_map.1d5df120-ff1b-4f4f-af56-171ecbcc785d ... 

यह फिर SVN से सभी प्रतिबद्ध दिलवाया और त्रुटि संकल्प लिया।