2010-06-22 15 views
6

निर्धारित करने में असमर्थ मैं गिट-एसवीएन की कोशिश कर रहा हूं और मुझे निम्न त्रुटि मिल रही है। क्या मैं अब तक किया हैgit-svn dcommit त्रुटि: अपस्ट्रीम एसवीएन जानकारी

git svn init -T <my svn repo> 

तो मैं

git commit -a 
तो

के साथ अपने भंडार करने से किया गया है एक बार मैं उन मैं एक

git svn fetch 

किया के कुछ किया है और फिर मैंने

git svn dcommit 

हो wever सकता है, कि

Unable to determine the upstream SVN information from HEAD history. Perhaps the repository is empty

मैं भी देख सकते हैं कि मेरी फाइल सिस्टम में फ़ाइलों SVN द्वारा किया जा रहा के रूप में चिह्नित नहीं कर रहे हैं (यकीन नहीं करता है, तो ऐसा या नहीं होना चाहिए), हालांकि साथ विफल रहता है। यदि मैं svn भंडार ब्राउज़ करता हूं (रेपो ब्राउज़र के साथ) मैं देख सकता हूं कि मूल फ़ाइलें वहां हैं।

इस मूल विफलता के बाद मैंने को बिना किसी सफलता के पुन: प्रयास किया (यह कुछ अन्य त्रुटि फेंकता है)।

+0

मुझे लगता है कि यह इस तथ्य से संबंधित है कि एसवीएन भंडार शुरुआत में खाली है। सुनिश्चित नहीं है कि यह गिट-एसवीएन की सीमा है या नहीं। – usr1234567

उत्तर

1

git svn आदेश सामान्य रिमोट से निपटने के समान हैं (svn रिमोट को git-svn नाम दिया गया है)। fetch बस रिमोट से डाउनलोड करता है, यह किसी भी तरह से आपके पेड़ से कनेक्ट नहीं होता है। यह काम करेगा यदि आप इनटिंग के बाद सही प्राप्त करते हैं, क्योंकि आपके पास अभी तक कोई पेड़ नहीं है, लेकिन आपने पहले किया है। आप git svn rebase का उपयोग करना चाहते हैं, जो आपके पेड़ को svn head पर रीबेस करेगा। आम तौर पर git svn init के ठीक बाद, या बस git svn clone का उपयोग करें, जो दोनों करता है। एक बार प्रारंभिक भंडार की स्थापना की है तुम सिर्फ git svn rebase हर समय है, जो को हासिल करेगा और rebases उपयोग कर सकते हैं एक ऑपरेशन में

+2

हाय माइकल। स्पष्टीकरण के लिए धन्यवाद । मुझे नहीं पता था कि मुझे गिट रेपो को शुरू करने से पहले रिबेस करना होगा। मैंने गियट एसवीएन रीबेज की कोशिश की (जैसा कि मैंने अपनी पोस्ट में कहा था) लेकिन यह फेंकता है पेड़ डिक्शनरी – roundcrisis

+0

@Miau से अपस्ट्रीम एसवीएन जानकारी निर्धारित करने में असमर्थ मुझे यकीन नहीं है कि आपके मौजूदा भंडार को कैसे ठीक किया जाए; आपको एक नया निर्माण करने और एसवीएन रिमोट को ठीक से सेट करने की आवश्यकता हो सकती है * इससे पहले कि आप कुछ भी –

+0

करें, एक चीज जो आप कर सकते हैं वह है पैच के रूप में अपनी प्रतिबद्धता को सहेजने का प्रयास करें और फिर 'गिट रीसेट - हार्ड' करें। फिर अपस्ट्रीम अपडेट प्राप्त करने के लिए 'git svn fetch' और' git svn rebase' करें। फिर अपने पैच लागू करें और प्रतिबद्ध करें। यह ** ** काम कर सकता है। – yasouser

0

बस एक अनुमान, Git SVN क्लोन, तो Git SVN dcommit कोशिश तो बदल/फ़ाइलें प्रतिबद्ध,। इस तरह मैं आमतौर पर ऐसा करता हूं और यह काम करता है (मेरे मामले में)।

+0

क्या यह एक एसवीएन रिपोजिटरी के साथ भी काम करता है, जिसे अभी तक कोई प्रतिबद्धता नहीं मिली है? – usr1234567

3

मैंने पाया कि, जब SVN रेपो खाली Git-SVN फेंकता

Unable to determine upstream SVN information from HEAD history

तो का उपयोग कर रहा था SVN मैं पहली बार के रूप में एक पाठ फ़ाइल में जाँच के लिए प्रतिबद्ध

svn add test.txt; svn commit -m "test file" 

तो मैं एक Git SVN क्लोन और कहा कि तय सब कुछ करने में सक्षम था।

1

इस साइट ने मेरे लिए समस्या तय की: http://eikke.com/importing-a-git-tree-into-a-subversion-repository/। प्रत्यक्ष बोली:

The issue is that the SVN metadata has been lost. To fix this, we can use a Git graft to link them. We’ll tell Git the commit which created the SVN folder in which we want to store the project is the parent commit of the first commit in our Git repository:

$ git show-ref trunk 
> 741ab63aea786882eafd38dc74369e651f554c9c refs/remotes/trunk 
$ $ git log --pretty=oneline master | tail -n1 
> 88464cfdf549a82b30ee7c52e53e2b310f0d9ec4 Initial version 
$ echo "88464cfdf549a82b30ee7c52e53e2b310f0d9ec4 741ab63aea786882eafd38dc74369e651f554c9c" >> .git/info/grafts` 
1

Is it a general git-svn limitation? Or exists the problem between keyboard and chair?

यह त्रुटि संदेश commit a8ae262

Since you're committing from HEAD (or another commit that is a parent of HEAD), you'll be able to find a commit with metadata information containing the SVN URL that your HEAD was descended from anyways.

तो Git जरूरतों से Git 1.5.1 (फरवरी 2007) में पेश किया गया था SVN सहित एक प्रतिबद्ध खोजने के लिए आपकी शाखा में से किसी एक को ठीक से काम करने के लिए यूआरएल क्रम में।

Or exists the problem between keyboard and chair?

कि अगर आपgit svn clone से पहले बनाई गई अपनी शाखा से एक का चयन हो सकता है। आपको git svn clone द्वारा एसवीएन से आयात किए गए लोगों के शीर्ष पर बनाए गए शाखाओं के साथ काम करने की आवश्यकता है।

+0

दूसरे शब्दों के साथ: गिट-एसवीएन खाली सबवर्जन रिपॉजिटरीज को संभाल नहीं सकता है। – usr1234567

+0

@ usr1234567 वास्तव में, ऐसा लगता है कि ऐसा लगता है। – VonC

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