2011-04-12 10 views
10

मैंने तब से इस समस्या को ठीक कर दिया है। लेकिन मुझे अभी भी पता नहीं क्यों मैंने काम किया।रहस्यमय गिट व्यवहार

हमारे पास काम पर हमारे कोड के लिए एक svn भंडार है। मेरे पास एक स्थानीय गिट-एसवीएन भंडार है क्योंकि मैं < 3 गिट। :) हम विंडोज का उपयोग करते हैं, इसलिए मैं सिग्विन का उपयोग करता हूं। मुझे लगता है कि सिगविन में नवीनतम संस्करण गिट 1.7.0.4 है। शुक्रवार को, मैंने बिना किसी समस्या के मेरे कोड को हटा दिया, घर चला गया। सोमवार की सुबह मैं वापस आया, और 'svn rebase git' करने की कोशिश की क्योंकि किसी ने सप्ताहांत (ओवरचियवर) पर कोड किया था।

यह सामान्य रूप से शुरू हुआ, और फिर अचानक फैसला किया कि यह ट्रंक नहीं मिल सका। दुर्भाग्यवश, मैंने सटीक त्रुटि संदेश खो दिया, लेकिन यह खोजने/refs/remotes/trunk के बारे में नहीं होने के बारे में चिल्ला रहा था ... और मैं बहुत डर गया था। सौभाग्य से, हालांकि, मेरे पास कोई असामान्य कोड नहीं था। खोने के लिए कुछ भी नहीं। फिर भी, हर बार जब मैं उसके बाद 'Git SVN रिबेस' करने की कोशिश की, यह हमेशा के लटका दिया और फिर मैंने निम्न त्रुटि मिलेगा:

Unable to determine upstream SVN information from working tree history

मैं एक पूरे दिन के लिए यह शोध किया। मैंने https://xxx.xxx.xxx/xxx/xxx से https://xxx.xxx.xxx/xxx/xxx/ से हास्यास्पद के रूप में svn-remote url को बदलने का प्रयास किया। मैंने फिर 'गिट svn fetch' किया ... और यह पूरे ट्रंक को फिर से लाया (सभी 1682 प्रतिबद्ध)। लेकिन rebase अभी भी काम नहीं करेगा। तो मैंने दिन के लिए छोड़ दिया, और फैसला किया कि अगले दिन मैं सिर्फ एक नया भंडार तैयार करूंगा और शुरू करूंगा (जो पूरे दिन ले जाएगा)। आज सुबह, मैं अपने भंडार को अनजाने में हटाने से पहले यहां सवाल पूछने गया। मैं इस भर में आया था:

git-svn rebase gone horribly wrong

जो नहीं बिल्कुल मेरी समस्या थी, लेकिन मैं कोशिश 'Git रीसेट --hard ट्रंक' मैं चाहता था क्योंकि उस का फैसला किया। और यह काम किया। सब ठीक है अब।

हालांकि।

ऐसा क्यों हुआ कि यह पहली जगह क्यों हुआ? मैंने को कहीं भी नहीं बदला, क्योंकि मैं सप्ताहांत में काम नहीं कर रहा था। किस तरह की चीजें उस त्रुटि का कारण बनतीं? मुझे लगता है कि मैं अनुपस्थिति से कुछ भयानक काम करता था, लेकिन मुझे यह जानने की ज़रूरत है कि मैं इसे फिर से क्यों नहीं करता। :)

अग्रिम धन्यवाद।

उत्तर

2

यह त्रुटि: की तरह अपने वर्तमान Git इतिहास बिल्कुल SVN इतिहास के आधार पर नहीं किया गया था

Unable to determine upstream SVN information from working tree history 

लगता है, और इस तरह rebase एक आम पूर्वज नहीं पा सके।

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

क्यों ट्रंक गायब हो गया/असफल रहा, यह समझना बहुत मुश्किल होगा कि त्रुटि संदेश के बिना क्या हुआ।