2010-07-19 17 views
14

की मरम्मत करने की कोशिश करने के बाद git-svn fetch/rebase विफल रहा है, मेरे हाल ही में मेरे भंडार में एक दूषित वस्तु थी, मेरे सिर पर इंगित करना (वस्तु खाली थी)। यह एक गिट-एसवीएन कमांड में बाधा डालने के बाद हुआ। फिर, मैंने इस ऑब्जेक्ट पर मैन्युअल रूप से रेफरी बदलकर अपने भंडार को बहाल कर दिया।एक दूषित फ़ाइल

अब, मैं SVN के साथ मेरे Git भंडार सिंक्रनाइज़ करने के लिए चाहते हैं, लेकिन Git SVN रिटर्न लाने:

fatal: Invalid revision range 5a5dc92cd3083960fb4828ae387a32cda0554fa8..refs/remotes/a-branch 
rev-list --pretty=raw --no-color --reverse 5a5dc92cd3083960fb4828ae387a32cda0554fa8..refs/remotes/a-branch --: command returned error: 128 

5a5dc92cd3083960fb4828ae387a32cda0554fa8 भ्रष्ट वस्तु को संदर्भित करता है, मैं Git-svn इस वस्तु पर विचार करने के लिए नहीं कहना चाहेंगे लेकिन एक और, लेकिन मुझे नहीं पता कि यह कैसे हैक करना है।

यदि कोई जानता है कि गिट-एसवीएन आंतरिक रूप से इस मूल्य को कैसे स्टोर करता है तो यह बहुत अच्छा होगा।

आप

उत्तर

17

धन्यवाद अगर आप अपने लिए प्रतिबद्ध संदेश (उन http://svn.…./svn/[email protected] (<id>)) के साथ संग्रहीत मेटाडेटा svn है, तो आप .git/svn/… निर्देशिकाओं से .rev_map.<id> फ़ाइलें हटा सकते हैं।

git-svn फिर अगली कमांड चलाने से पहले उन्हें फिर से बना देगा।

संपादित करें: जब git gc चल रहा है, तो आप की तर्ज पर उत्पादन देखें:

$ git gc 
warning: reflog of 'HEAD' references pruned commits 
warning: reflog of 'refs/heads/master' references pruned commits 
warning: reflog of 'refs/remotes/trunk' references pruned commits 

तो आप जानते हैं कि आप ऊपर चाल प्रदर्शन करने के लिए की जरूरत है। इस मामले में:

rm .git/svn/refs/remotes/trunk/.rev_map.* 
+0

मैं यह स्पष्ट है कि rev_map में पिछले संदर्भ से आता है बनाने के लिए इस सवाल का जवाब संपादित किया है, के बाद से मैं बाहर काम किया कि वेब पर एक और संदर्भ से जरूरत थी। –

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