पुनः शुरू git-svn क्लोन


117

मैंने git-svn के क्लोन ऑपरेशन का उपयोग करके एक SVN रिपॉजिटरी की क्लोनिंग शुरू कर दी। आयात करने के लगभग 6 घंटे बाद (यह एक बड़ा रेपो है), मेरा कंप्यूटर चला गया और मेरे ऊपर सो गया। क्या प्रारंभिक कार्य को फिर से किए बिना ऑपरेशन को फिर से शुरू करने का एक तरीका है?

जवाबों:


156

git svn fetchफिर से शुरू करने की आज्ञा git svn cloneकई स्रोतों द्वारा पुष्टि की जाती है:

(संयोग से, यदि प्रारंभिक क्लोन चरण के दौरान आपका कनेक्शन मर जाता है या आपको इसे रोकने की आवश्यकता है, तो क्लोन को फिर से शुरू करने के लिए आपको इतिहास डाउनलोड करने के लिए फिर से शुरू करने के लिए उपरोक्त कमांड को चलाना होगा)।

लगता है स्मृति रिसाव में है git-svngit-svnप्रक्रिया का आकार धीरे-धीरे बढ़ता गया और लगभग दो हफ्तों के बाद यह 1.2 जीबी के निवासी के आकार पर था, जिस बिंदु पर ओएस ने इसे कांटा देने से इनकार कर दिया था।
बात यह है, यह भेष में एक आशीर्वाद था।
मैं एक सरल " git svn fetch" के साथ बाधित क्लोन को फिर से शुरू करने में सक्षम था , और यह अब मौलिक रूप से छोटे ढेर के साथ बहुत तेजी से भाग गया।
यह, इतनी अच्छी तरह से काम किया, वास्तव में, मुझे हर शाम और हर सुबह प्रक्रिया को बाधित करने और फिर से शुरू करने की आदत पड़ गई। कुछ दिनों बाद ऐसा किया गया।

आप git-svnएक मौजूदा तोड़फोड़ भंडार क्लोनिंग के साथ अपने रोमांच शुरू करते हैं :

git svn clone url://path/to/repo -s

-sझंडा मानता है कि अपने भंडार "ट्रंक, शाखाओं, टैग" सम्मेलन का उपयोग करता है। यदि नहीं, तो आपको मैन्युअल रूप से निर्दिष्ट करना होगा कि कौन सी निर्देशिका शाखाओं और टैग का प्रतिनिधित्व करती है, यदि आप चाहते हैं कि उनके बारे में Git पता चले।

इसमें लंबा समय लगेगा, क्योंकि यह एसवीएन से हर एक संशोधन करेगा और स्थानीय स्तर पर प्रतिबद्ध होगा। यदि किसी भी कारण से यह रुक जाता है, तो आप फिर से शुरू कर सकते हैं git svn fetch


1
मुझे लगता है कि कमांड लाइन के कुछ विकल्प git svn cloneभी प्रदान करने की आवश्यकता है (जैसा कि लागू हो) git svn fetch। उदाहरण के लिए, मैंने केवल HEAD SVN संशोधन प्राप्त करने के -r HEADलिए सेट किया था git svn clone। फिर से शुरू करने के लिए मैं भागा git svn fetch, जिसने सभी संशोधनों को आयात करना शुरू कर दिया।
अमोलबक

यह सब कुछ पहले संशोधन से शुरू हुआ .... मेरे पास 10,000 कमिट हैं! कैसे छोड़ दिया है, जहां से फिर से शुरू करने पर कोई विचार ?
नाथन जेबी

@ नाथनज.ब्राउर मेरे सिर के ऊपर नहीं। आप एक नया प्रश्न पूछ सकते हैं (OS, git संस्करण और svn संस्करण का उपयोग किया गया था, और संदर्भ के लिए इस उत्तर पर वापस लिंक)
VonC

1
मैंने git svn cloneइस प्रक्रिया को बाधित करने के दौरान गलती से अपने नेटवर्क कनेक्शन को मार दिया । चल रहा है git svn cloneफिर से क्लोन-इन-प्रोग्रेस को फिर से शुरू करने के लिए। किसी और ने यह किया है?
केहलान क्रुममे

1
जाहिर है इतनी @Kehlan, अगर आप समझते हैं नीचे zan-xhipe का जवाब
VonC

17

मुझे एक ब्लॉग पोस्ट मिला है जो प्रदान करता है (मुझे उम्मीद है) एक सही उत्तर है।

जाहिरा तौर पर, git svn fetchप्रभावी ढंग से चलने से क्लोन ऑपरेशन पूरा हो जाता है। यहाँ उम्मीद है!


7
आपको git svn rebaseऑपरेशन पूरा करने के लिए लाने के बाद उपयोग करना होगा और ट्रंक को दर्शाते हुए मास्टर ब्रांच होना चाहिए
Romuald Brunet

क्या आप भविष्य के संदर्भ के लिए ब्लॉग पोस्ट का लिंक प्रदान कर सकते हैं?
jmanning2k

6

VonC के रूप में, CaptainAwesomePants और Archi सभी ने कहा git svn fetchकि चाल है। मैं कर रहा था git svn clone url... --authors-file=path/to/fileऔर क्लोन विफल हो गया क्योंकि लेखकों में से एक लेखक फ़ाइल में नहीं था। मैंने लेखक को फ़ाइल में जोड़ा और भाग गया git svn fetchऔर यह जारी रहा, जहां से वह चला गया और बाद में गिट लॉग को देखते हुए, ऐसा लगता है कि इसने नए जोड़े गए लेखक का इस्तेमाल प्रतिबद्ध लेखक के नाम को बदलने के लिए किया था, इसलिए यह सब मीठा था।


5

कम से कम git 2.1.0 से आप बस फिर से शुरू करके फिर से शुरू कर सकते हैं git svn clone

हालाँकि यह आपके .git / config को कुछ प्रविष्टियों को डुप्लिकेट करेगा और उन्हें हटा देगा और सबकुछ ठीक हो जाएगा


From at least git 2.1.0...किसी भी विचार अगर यह सुविधा 1.9.1 पर मौजूद है?
CivFan

क्षमा करें, अब मेरे पास इस पर प्रयास करने के लिए कोई svn रिपॉजिटरी नहीं है।
ज़ान-झिपी

git svn fetchमेरे लिए एक checksum बेमेल के कारण होता है - और क्योंकि वहाँ था जाहिरा तौर पर कोई सिर पुनर्स्थापित करने के लिए असंभव था: / - लेकिन इस ठीक काम करता है, बस दूर करने के लिए किया था svn-remote.fetchसे.git/config
OLL
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.