2011-10-14 6 views
5

मैं के साथ एक बड़ी समस्या है Git-svn: मैं बस एक SVN सर्वर से मेरी Git रेपो पुश करने के लिए की जरूरत है, तो मैं बना निम्नलिखितGit SVN dcommit परिवर्तन नहीं मिल रहा है और सिर रीसेट

svn mkdir --parents http://host/path/to/repo/{trunk,tags,branches} \ 
    -m "Standard layout for $project" 
git svn init -s http://host/path/to/repo/ 
git svn fetch 
git rebase trunk master 
git svn dcommit 

यह काम किया महान और सब कुछ गिट और svn पर है!

अब मुझे यह संदेश मिला है कि मेरी गिट मास्टर शाखा 31 मूल/मास्टर के पीछे है, इसलिए मैंने एक गिट पुल बनाया। अब मैंने अपने रेपो में कुछ चीजें बदल दी हैं (मूल रूप से इसकी एक ग्रहण जावा परियोजना) और इसे प्रतिबद्ध किया। अब मैं भी SVN रेपो पर यह पुश करने के लिए करना चाहते हैं और बना एक Git SVN dcommit लेकिन काम नहीं कर रहा thats:

Committing to https://..../trunk ... 
No changes 
38b194cb2860b8bb73924cb05f9830dbdb70cf82~1 == 38b194cb2860b8bb73924cb05f9830dbdb70cf82 
No changes between current HEAD and refs/remotes/trunk 
Resetting to the latest refs/remotes/trunk 
Unstaged changes after reset: 
M  Product/Abgabe.tex 
Unable to extract revision information from commit daf483ad1333f3589386b87054f4c27fb7ff23cf~1 

क्या मैं गलत था? मास्टर अब से पहले प्रतिबद्ध करने के लिए reseted है, अब मैं git checkout -- Abgabe.tex और git pull करने की जरूरत है यहाँ सही संस्करण के लिए ...

संपादित करें: अगर मैं एक git svn rebase करते हैं, मैं हर संघर्ष की एक लंबी सूची के लिए प्रतिबद्ध के लिए मिलता है, तो मैं अंत करने के लिए git rebase --skip बनाया, और फिर dcommted, इस काम कर रहा था, लेकिन यह एक खूनी हैक हो रहा है:/

उत्तर

7

मुझे लगता है कि आप अपने काम के प्रवाह में याद कर रहे हैं git svn rebase http://flavio.castelli.name/2007/09/04/howto_use_git_with_svn/

MH हाँ ऐसा लगता है
+0

है तो ... ठीक है तो मैंने समस्या की पहचान की: यदि मैं अलग-अलग मेजबानों पर गिट का उपयोग करता हूं और इसे रेपो पर धक्का देता हूं और शाखाओं को मर्ज करना होता हूं, svn गैर-रैखिक इतिहास के साथ शाखा में समस्या है। अब मुझे रिबेस करना है ... लेकिन गधे में दर्द होता है! जब मैं फिर से गिट करने के लिए धक्का देना चाहता हूं तो मुझे पहले अपने गिट इतिहास को खींचने की आवश्यकता है और फिर इसे फिर से svn संस्करण में दोबारा शुरू करें ... – reox

+3

मैं आमतौर पर मास्टर पर 'गीट svn rebase' करता हूं' git checkout -b feature_branch'। एक बार जब मैं एसवीएन सर्वर पर अपस्ट्रीम करने के लिए तैयार हूं, तो फीचर शाखा में अपना पूरा काम करें, मैं 'चेकआउट मास्टर' गिट कर दूंगा, फिर 'गिट एसवीएन रीबेज' तो 'गिट मर्ज फीचर_ब्रंच' फिर 'गीट एसवीएन डॉकिट'। – Joe

+1

@ जो। लिंक अब टूटा हुआ है, लेकिन गिट एसवीएन रीबेज चाल थी। धन्यवाद। – JackMorrissey

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