2010-04-20 15 views
105

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

उत्तर

140

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

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

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

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

-s झंडा मानता है कि y:

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

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

+1

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

+0

इसने पहले संशोधन से सबकुछ शुरू किया .... मेरे पास 10,000 काम हैं! किसी भी विचार को * फिर से शुरू करने के लिए * कहां से छोड़ा गया है? –

+0

@ NathanJ.Brauer मेरे सिर के शीर्ष पर नहीं। आप एक नया प्रश्न पूछ सकते हैं (ओएस, गिट संस्करण और एसवीएन संस्करण के साथ, और संदर्भ के लिए इस उत्तर पर एक लिंक) – VonC

14

मुझे a blog post मिला जो प्रदान किया गया (मुझे उम्मीद है) एक सही जवाब है।

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

+7

आप का उपयोग करना होगा किया जाएगा द्वारा शुरू कर सकते हैं ऑपरेशन को पूरा करने के लिए लाने के बाद 'git svn rebase'' और ट्रंक –

+0

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

5

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

+0

यहां समान है! आपकी पोस्ट के लिए धन्यवाद! –

3

कम से कम Git से 2.1.0 तुम सिर्फ git svn clone

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

+0

'कम से कम गिट 2.1.0 से ...' कोई विचार अगर यह सुविधा गिट 1.9.1 पर मौजूद है? – CivFan

+0

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

+0

'git svn fetch' ने मेरे लिए एक चेकसम मेल नहीं किया - और रीसेट करना असंभव था क्योंकि स्पष्ट रूप से कोई सिर नहीं था:/- लेकिन यह ठीक काम करता है, बस' svit-remote.fetch' को '.git/config से हटा देना था ' – OLL

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