2013-10-02 2 views
5

पर माइग्रेट करें मेरे पास एक प्रोजेक्ट है जिसे एसवीएन को गिट रिपोजिटरी पोर्ट करने की आवश्यकता है। मैंने ऑनलाइन पोस्ट किए गए कई तरीकों की कोशिश की, लेकिन उनमें से कोई भी मेरे लिए काम नहीं करता है। अगर कोई मदद कर सकता है, तो इसकी सराहना की जाएगी।गिट से एसवीएन

मैं एक काम की नकल

  • प्रतिलिपि
  • के लिए सिर रीवाइंड में जाने के लिए एक Git रेपो क्लोनिंग

    • पर एक गाइड का पालन पहले
    • चेरी सब करता उठा प्रतिबद्ध
    • git svn rebase और git svn dcommit

    इस विधि की समस्या यह है कि मेरे गिट भंडार का एक जटिल इतिहास है। कई ब्रांचिंग आउट और विलय हो रहे हैं। जब मैंने चेरी पिक किया, तो यह केवल अंतिम भंडार का हिस्सा वापस लेता है।

    प्रश्न: क्या चेरी पिकिंग और git svn rebase से बचने का कोई तरीका है? शायद इसे किसी और चीज़ से बदलें?

    मैं इस वेब पद का पालन किया: Migrate a Git repo to an svn one

    इस पोस्ट में अनिवार्य रूप से

    • git svn clone
    • दिलवाया क्लोन काम कर नकल में Git रेपो
    • मास्टर branched old_master को
    • किया old_master से मास्टर तक सभी कामों को लागू किया (git svn rebase)
    • git dcommit

    इस दृष्टिकोण की समस्या है जो मैं पहले एक में था के समान है क्या किया: जब मैं git svn rebase किया था, वहाँ संघर्ष की एक बहुत हैं। इसके अलावा, जब मैं सभी विवादों को छोड़ देता हूं, git dcommit विफल रहा। यह मुझे बताया: Unable to determine upstream svn information from HEAD history.

    मैं यह नहीं बता सकता कि इस बिंदु से और क्या प्रयास करना है। अगर आप कुछ भी गलत करते हैं या इसे करने के अन्य तरीके हैं तो कृपया कोई सुझाव दें। इसकी सराहना की !!

  • उत्तर

    3

    मुझे लगता है कि आपके पास कुछ गिट इतिहास खोने के अलावा कोई विकल्प नहीं है - एसवीएन बस इतना अधिक जानकारी संभाल नहीं सकता है।

    केवल हैक मैं सोच रहा हूँ, एक तीसरी पार्टी के लिए समस्या सौंपने के लिए, GitHub's SVN support का लाभ लेने के अपने कार्य को कम करने के लिए किया जाएगा।

    मैं आपको वास्तव में यह सोचने की सलाह दूंगा कि आपको अपना इतिहास बिल्कुल रखना है, या इसे कितना पूरा करने की आवश्यकता है। उस पर आधारित, मैं केवल विवादित प्रतिबद्धताओं (या एक ही प्रतिबद्धता में पूरा इतिहास) को स्क्वैश/रीबेस कर दूंगा और उससे शुरू कर दूंगा।

    फोर्क आपके साथ हो सकता है!

    +0

    यह कमाल है! कुछ सचमुच सरल और मेरी सभी जरूरतों को फिट करता है !! आपको बहुत - बहुत धन्यवाद! – curlingbunny

    +0

    डाउनवॉटेड क्योंकि एसवीएन उस जानकारी को संभाल सकता है और वास्तव में गिट की तुलना में अधिक जानकारी संभाल सकता है। मुख्य समस्या यह है कि गिट नामों को ट्रैक नहीं करता है और बिल्कुल चलता है। इसलिए, माइग्रेशन जटिल हो सकता है। – bahrep

    +0

    गिट प्रतिबद्धता के साथ संचालन को बनाए रखने के बजाए नामों का पता लगाता है, ताकि आप गिट एमवी का उपयोग कर सकें या सिर्फ एक सादा एमवी कोई फर्क नहीं पड़ता। http://stackoverflow.com/questions/2314652/is-it-possible-to-move-rename-files-in-git-and-maintain-their-history/13544573 – dev

    1

    ठीक है, आपको this question पर एक नज़र रखना होगा। सबसे अच्छा जवाब है:

    इस दिशा में रूपांतरण करने में सामान्य समस्या यह है कि गिट रिपोजिटरी में संशोधन के केवल एक रैखिक इतिहास से अधिक हो सकता है, क्योंकि सबवर्जन की उम्मीद होगी। अलग-अलग इतिहास और लगातार विलय समितियों के साथ कई पूर्वजों को संभव है, जिन्हें सबवर्सन रिपोजिटरी में आसानी से प्रदर्शित नहीं किया जा सकता है।

    साधारण मामलों के लिए जहां आपके गिट भंडार में एक रैखिक इतिहास है, आप गिट-एसवीएन डॉकिटिट का उपयोग अन्यथा खाली सबवर्जन रिपोजिटरी को बहुत अधिक धक्का देने के लिए कर सकते हैं।

    सर्वश्रेष्ठ संबंध।

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