2008-10-17 20 views
13

समाप्त हुआके the git mirror को बनाए रखा गया है। कुछ हफ्ते पहले कुछ समय, हम किसी को अपना पहला गिट-आधारित पैच जमा करने के लिए तैयार थे। दुर्भाग्य से, हम परियोजना की बहु-प्लेटफार्म प्रकृति की वजह से लाइन एंडिंग्स (सीआरएलएफ बनाम एलएफ, आदि) के संबंध में कुछ मुद्दों में भाग गए।गीट svn rebase: अपूर्ण डेटा: डेल्टा स्रोत अप्रत्याशित रूप से

मैंने कोशिश की कि मैं the autocrlf option ('इनपुट') सेट करने के लिए क्या कर सकता हूं, और कुछ -हार्ड रीसेट करता हूं।

Incomplete data: Delta source ended unexpectedly 

मुझे क्या करना है के लिए आसपास googling की कोशिश की है, लेकिन यहां तक ​​कि .git/config में autocrlf सेटिंग को हटाने: हालांकि, कुछ ही दिन बाद, दैनिक अद्यतन (Git SVN रिबेस) इस त्रुटि उगल रहा है मदद नहीं की है मुझे डर है कि कामकाजी प्रति भ्रष्ट है, लेकिन मुझे उम्मीद है कि यह अप्राप्य नहीं है।

जाहिर है, कार्रवाई का एक संभावित तरीका केवल एसवीएन से पुनः आयात करना है और एक नया दर्पण शुरू करना है, लेकिन मुझे उम्मीद है कि हमें ऐसा करने की ज़रूरत नहीं है, क्योंकि मौजूदा वॉटर-मिरर पहले से ही फोर्क किया गया है, और लोग अपने कांटे में नया कोड विकसित किया है।

किसी भी मदद के लिए अग्रिम धन्यवाद।

+0

क्या आपको इस समस्या के साथ कोई और फायदा हुआ? वर्तमान में हमें एक ही समस्या है। (और एक गिट-एसवीएन चेकआउट बनाने में पिछली बार 3 दिन लग गए, इसलिए मुझे उम्मीद है कि मैं इससे बच सकता हूं) – pvgoddijn

+0

@pvgoddijn कोई खेद नहीं है, एक प्रस्ताव वास्तव में कभी नहीं मिला था। समस्या अभी चली गई क्योंकि वे आधिकारिक तौर पर जिथब में चले गए और svn छोड़ दिया। – Pistos

उत्तर

5

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

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

+0

हैश वही रहता है, हुह? खैर, मुझे यह जानना चाहिए था कि गिट ने प्रतिबद्ध डेल्टा के वास्तविक बाइट हैं। दुर्भाग्यवश, मैं सीआरएलएफ <-> एलएफ मुद्दे को दूसरी बार पार करने के इच्छुक लोगों के कारण मतभेदों में भाग ले सकता हूं। हालांकि, मैं फिर से आयात करने की कोशिश करूंगा। धन्यवाद! – Pistos

+0

ठीक है, सीज़रबी, मैंने एसवीएन स्रोत से एक गिट svn init करके, इनपुट करने के लिए autocrlf सेट करके, फिर svn fetch git - लेकिन मुझे बीच में एक ही त्रुटि ("डेल्टा स्रोत ...") मिलती है, लाने का कोई अन्य सुझाव? – Pistos

+0

अपने प्रारंभिक दर्पण की तरह, autocrlf के साथ खेलने के बिना प्रयास करें। अगर यह उस त्रुटि को बनाए रखता है, तो मुझे संदेह होगा कि यह या तो svn या git-svn टूटा हुआ है। – CesarB

16

ब्रेलकाड svn भंडार से गिट भंडार बनाने की कोशिश में मुझे यही समस्या थी। मैंने git svn reset --r XXXXX कर इसे हल किया, जहां मैंने XXXXX को मूल रूप से त्रुटि उत्पन्न करने वाले पहले से 50 संशोधन होने के लिए सेट किया था।

एक संशोधन को वापस लेना त्रुटि को हल करने में सफल नहीं था। प्रक्रिया के हिस्से के रूप में, मुझे परिभाषित नहीं किए जाने वाले हेड के बारे में गिट से त्रुटियां मिलीं। इसे हल करने के लिए, मैंने git svn find-rev XXXXX किया था जो कि मैं चाहता था कि संशोधन के अनुरूप हैश, फिर गिट चेकआउट। इसके बाद, HEAD के बारे में त्रुटियां चली गईं और git svn reset -r XXXXX काम किया।

+2

बहुत बहुत धन्यवाद। यह एक समान समस्या पर मदद करता है। मैंने वर्तमान संशोधन से पहले एक संशोधन में संशोधन संख्या सेट की है। – Lei

+0

धन्यवाद, मुझे एक समस्या के दौरान यह समस्या थी और इसे हल किया गया। – Schwern

+0

इसी प्रकार, बहुत बहुत धन्यवाद। – Christian

0

मुझे वही समस्या थी और टोड के मामले की तरह, पिछले संशोधन में जाने से समस्या ठीक हो गई।

मुझे लगता है कि समाधान समस्याग्रस्त फ़ाइल के पिछले चरण में दो चरणों में जाना है।

+2

समस्याग्रस्त फ़ाइल की पहचान कैसे करें? – anony

0

मैंने एक ही समस्या देखी है। ऐसा तब होता है जब मैं एक svn repo का आंशिक क्लोन करता हूं। मुझे लगता है कि git-svn को dcommit करते समय फ़ाइल का मूल स्रोत नहीं मिल रहा है। मैंने यह सुनिश्चित करके इसे ठीक कर दिया है कि मैं पूरी तरह अद्यतित हूं (गिट svn rebase) तो गिट svn सेट-पेड़ का उपयोग करके विचलन में विशिष्ट परिवर्तन करने के लिए। यदि आपके पास प्रतिबद्ध करने के लिए बहुत सारे बदलाव हैं, तो यह दर्द हो सकता है क्योंकि आपको क्रमशः प्रत्येक बदलाव को मैन्युअल रूप से करने की आवश्यकता है, लेकिन यदि आपके पास केवल एक या दो धक्का देने के लिए काम करता है तो यह अच्छी तरह से काम करता है।

4

मुझे git svn fetch के साथ एक ही समस्या थी, लेकिन रीसेट दृष्टिकोण मेरे लिए काम नहीं करता था, शायद क्योंकि मुझे वास्तव में भ्रष्टाचार होने पर पता नहीं था। अंततः मेरे लिए क्या काम किया है। मैंने git svn fetch --ignore-paths="/branches/" किया जो बिना त्रुटि के भाग गया।उसके बाद, मैंने एक बार फिर से अपना git svn fetch किया, और इस बार काम किया।

+0

रीसेट दृष्टिकोण मेरे लिए काम नहीं किया, आपने किया। धन्यवाद! – yhager

+0

@yhager - आपका स्वागत है! –

+0

रीसेट दृष्टिकोण मेरे लिए भी काम नहीं करता था। लेकिन मैं शाखाओं को अनदेखा नहीं करना चाहता हूं। मुझे क्या करना चाहिए? – anony

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

  • कोई संबंधित समस्या नहीं^_^