2016-08-09 10 views
7

के साथ गिट माइग्रेशन के लिए एसवीएन हमारे पास एक विशाल एसवीएन रिपोजिटरी (~ 100 जीबी) है जिसे हम गिट में माइग्रेट करने का प्रयास कर रहे हैं। समस्या यह है कि, रेपो में फ़ोल्डर पेड़ में फैली कई बाइनरी फाइलें होती हैं।गिट-एलएफएस

सबसे पहले बात यह है कि हमने सोचा कि Git-LFS को बाइनरी स्थानांतरित करने के लिए है, लेकिन वहाँ कुछ सवाल है कि हम पहले संबोधित करने की आवश्यकता है:

  1. हम इतिहास प्रतिबद्ध रखने की जरूरत है। पिछले काम में एलएफएस फ़ाइल सूचक के साथ बाइनरी फ़ाइल को प्रतिस्थापित करना संभव है?
  2. हम कई शाखाओं का उपयोग कर रहे हैं। चेकआउट के दौरान, क्या गिट-एलएफएस मौजूदा बाइनरी कैश करता है इसलिए शाखाओं के बीच चेकआउट में बार-बार उन बाइनरी को दोबारा डाउनलोड नहीं किया जाएगा।
  3. क्या गिट-एलएफएस विभिन्न शाखाओं में एक बाइनरी फ़ाइल रखने का समर्थन करता है या हमें सर्वर पर प्रत्येक शाखा के लिए प्रत्येक बाइनरी फ़ाइल को डुप्लिकेट करना चाहिए?
  4. क्या चेकआउट प्रक्रिया के दौरान बाइनरी फ़ाइलों का आंशिक चेकआउट करना संभव है? इसलिए यदि आवश्यक हो तो बाइनरी फ़ाइलों के कुछ हिस्सों को डाउनलोड किया जाएगा।
  5. सर्वर पर, इस बाइनरी फ़ाइलों को कैसे संग्रहीत किया जाना चाहिए? क्या उन बाइनरी को स्टोर करने के लिए कोई सर्वर ऐप आवश्यक है, या सरल HTTP/FTP सर्वर करेगा?

धन्यवाद

उत्तर

0

मुझे लगता है कि मैं इस के लिए इस सवाल का जवाब मिल गया है, हालांकि यह अपने आप परीक्षण पूरा नहीं किया है (पहला कदम हमारे भंडार के लिए कई घंटे लगते हैं)। चाल इस Atlassian प्रलेखन से है:

https://confluence.atlassian.com/bitbucket/use-bfg-to-migrate-a-repo-to-git-lfs-834233484.html

यह bitbucket के लिए विशिष्ट है, लेकिन मैं इसे किसी भी Git भंडार के साथ काम करेगा कल्पना।

चरण 1: पहला कदम एसवीएन प्रोजेक्ट को गिट में परिवर्तित करना है। यह git-svn साथ किया जा सकता के रूप में यहाँ वर्णित:

https://john.albin.net/git/convert-subversion-to-git

कि पेज भी लेखकों में ले जाएं और अतिरिक्त विवरण Git लेखकों (असली नाम और ईमेल) में की अनुमति दी में जोड़ने के लिए तरीके का वर्णन किया।

चरण 2: अब "बीएफजी रिपो-क्लीनर" का उपयोग करने के लिए उपरोक्त एटलसियन दस्तावेज़ों में दिए गए निर्देशों का पालन करें, जो आपके इतिहास में सभी "बड़ी फाइलें" को गिट एलएफएस के संदर्भों के साथ बदल दें। यह कुछ चीजें करने के लिए एक आसान टूल है जो git-filter-branch उपकरण के साथ भी किया जा सकता है।

मैं कदम दर कदम निर्देश यहाँ दे सकता है, लेकिन मैं सिर्फ उन अन्य स्रोतों से कॉपी करना चाहते हैं, और मैं वास्तव में इसे अपने आप को अभी तक (अब चल) की कोशिश की है। जब मैंने यहां परिणाम देखे तो मैं फिर से अपडेट करूंगा।