2009-06-10 12 views
5

मैंने हाल ही में गिट डुबकी लेने का फैसला किया है, और वास्तव में विंडोज पर भी गिट का उपयोग करने का आनंद ले रहा हूं।क्या गिट और सबवर्जन एक साथ अच्छा खेल सकते हैं?

मेरा वर्तमान ओपन सोर्स प्रोजेक्ट lives on subversion, सभी देवता विचलन से परिचित हैं इसलिए मैं अब के लिए "सत्य का स्रोत" के रूप में विचलन रखना चाहता हूं।

फिर भी, मैं गिट का उपयोग करना चाहता हूं, इसलिए मैं आगे बढ़ गया और git svn का उपयोग कर स्रोत on github की एक प्रति बनाई। मेरा पूरा काम जिथब में स्रोत के खिलाफ किया गया है और मैंने अपने परिवर्तन जिथब में धक्का दिया है। एक बार हर कुछ दिनों में मैं अपने परिवर्तन svn और rebase में भी धक्का देता हूं।

प्रारंभिक आयात ठीक लग रहा था, लेकिन अब हर बार जब मैं "गिट svn rebase" करता हूं तो मैं संघर्ष प्राप्त करता रहता हूं, यहां तक ​​कि उन फ़ाइलों पर भी जिन्हें मैं अपने प्राप्त भंडार में नहीं बदला है। यह मुझे much pain का कारण बन रहा है।

ईजी।

 
$ git svn rebase 
First, rewinding head to replay your work on top of it... 
Applying: Added git ignore file 
c:/Users/sam/Desktop/MediaBrowserGit/trunk/.git/rebase-apply/patch:12: trailing 
whitespace. 
*/obj/* 
error: .gitignore: already exists in index 
Using index info to reconstruct a base tree... 
:12: trailing whitespace. 
*/obj/* 
warning: 1 line adds whitespace errors. 
Falling back to patching base and 3-way merge... 
Auto-merging .gitignore 
CONFLICT (add/add): Merge conflict in .gitignore 
Failed to merge in the changes. 
Patch failed at 0001 Added git ignore file 

When you have resolved this problem run "git rebase --continue". 
If you would prefer to skip this patch, instead run "git rebase --skip". 
To restore the original branch and stop rebasing run "git rebase --abort". 

rebase refs/remotes/git-svn: command returned error: 1 

मेरे सवालों का:

  1. वहाँ किसी भी तरह से मैं SVN के साथ ही सामंजस्य के लिए Git बता सकते हैं स्रोत के रूप में svn उपयोग कर रहा है, तो मैं एक साफ स्लेट के साथ शुरू कर सकते हैं। (नवीनतम निर्यात करें, परिवर्तनों में जांचें और कहीं भी svn refs को रीसेट करें)

  2. क्या इस परिदृश्य को लगातार काम करने के लिए कोई सुझाव और युक्तियां हैं?

  3. क्या मेरे पास core.safecrlf and core.autocrlf विकल्प सही हैं? ऐसा लगता है कि मुझे थोड़ा हूप कूदना होगा।

संबंधित:

ऐसा लगता है लाइन अंत हो रही सही एक काले रंग की कला का एक सा है।

(मुझे लगता है कि इस सवाल का शायद विस्तार करने की आवश्यकता है, कि विस्तार हो रहा जरूरत स्थानों पर टिप्पणी करें)

उत्तर

2

आप लाइन न खत्म होने वाली संघर्ष हो रही है? गिट में कुछ कॉन्फ़िगरेशन गुण हैं जो आप सेट कर सकते हैं कि यह लाइन वर्णों के अंत को कैसे प्रबंधित करता है। मैं निम्नलिखित सेट है:

# this makes git NOT attempt to convert line endings on commit and checkout 
core.autocrlf=false 

# this makes git check if the conversion done by autocrlf would be reversible 
# this is probably not required because I do not have autocrlf turned on 
core.safecrlf=true 

ध्यान दें कि मैं खिड़कियों पर कर रहा हूँ, मेरे सभी सहकर्मियों खिड़कियों पर कर रहे हैं और मैं Git-SVN के माध्यम से SVN के साथ इंटरफ़ेस कर रहा हूँ। ये सेटिंग्स मेरे लिए चाल चलती प्रतीत होती हैं।

alt text http://www.codinghorror.com/blog/images/works-on-my-machine-starburst.png

+0

कभी कभी ... लाइन वाले कम कष्टप्रद न खत्म होने वाली है, यह की जो कि मिल मुझे गैर लाइन संघर्ष समाप्त होने हैं जिसमें "xxx लाइन संघर्ष समाप्त squelching" पंक्तियों के साथ कुछ कहने के लिए लगता है। यह कहता है कि एक पूरी फाइल संघर्ष स्थिति में है जब मैंने इसे कभी छुआ नहीं ... –

+0

लगता है जैसे आप लाइन समाप्त करने वाले संघर्ष प्राप्त कर रहे हैं - अगर पूरी फ़ाइल असंगत है तो शायद यह है कि कुछ लाइन अंत में बदल गई है –

+0

लाइन-एंडिंग, गिट, एसवीएन और विंडोज़ पर इंटरऑपरेबिलिटी के बारे में सबसे अच्छा अभ्यास क्या है? –

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