2010-11-15 13 views
7

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

मैं एसवीएन सर्वर पर परिवर्तनों को वापस लाने के लिए git svn dcommit चला गया और प्रक्रिया लटका हुआ प्रतीत होता है। मुझे पिछले 45 मिनट के लिए dcommit कॉल के लिए कोई CPU उपयोग नहीं मिला है और कोई नेटवर्क उपयोग नहीं है। आउटपुट पर अटक गया है:

> git svn dcommit 
...snip... 
    R  zlib/vs2005/zconf.h => tools/zlib/vs2005/zconf.h 
    R  zlib/vs2005/zlib.h => tools/zlib/vs2005/zlib.h 
    R  zlib/vs2005/zlib_ds.lib => tools/zlib/vs2005/zlib_ds.lib 
    R  zlib/vs2005/zlib_ds.pdb => tools/zlib/vs2005/zlib_ds.pdb 
    R  zlib/vs2005/zlib_s.lib => tools/zlib/vs2005/zlib_s.lib 
    R  zlib/vs2005/zlib_s.pdb => tools/zlib/vs2005/zlib_s.pdb 

और यह वह जगह है जहां यह लगभग 45 मिनट के लिए है।

संपादित करें: अंततः यह समाप्त हो गया कि HTTPS कनेक्शन का समय समाप्त हो गया। इसमें होने में डेढ़ घंटे लग गए।

मैं अगर मैं इस dcommit कॉल और क्या मैं इससे पहले कि मैं परिवर्तन SVN सर्वर पर अपने स्थानीय भंडार से फिर से फिर से जमा करने का प्रयास करने की ज़रूरत होगी बीच में क्या होगा पर कोई निश्चित जानकारी मिल नहीं कर पा रहे ।

मैं अपने प्रश्न के एक हिस्से का उत्तर दे सकता हूं: मुझे फिर से प्रयास करने से पहले क्या करना होगा?

कनेक्शन के समय समाप्त होने के बाद और मेरा प्रॉम्प्ट लौटा दिया गया था, मुझे git svn dcommit फिर से चलाने से पहले मुझे git svn fetch करना पड़ा। मेरे सभी नामकरण संचालन एसवीएन भंडार में पाए गए थे लेकिन निर्देशिकाओं को हटाए जाने के बाद खाली छोड़ दिया गया था। मुझे उन्हें हटाने के लिए अपने एसवीएन क्लाइंट का उपयोग करना पड़ा। मुझे यकीन नहीं है कि यह एक गिट-एसवीएन चीज है या उस डॉकिट कॉल के दौरान HTTPS टाइमआउट की वजह से है।

मुझे अभी भी इसका जवाब नहीं पता है: क्या एक डॉकिटिट कॉल को बाधित करना सुरक्षित है?

+1

यदि आप खाली डीआईआर को हटाने के लिए गिट-एसवीएन चाहते हैं, तो आपको '--rmdir' कमांड लाइन विकल्प या 'svn.rmdir' कॉन्फ़िगरेशन विकल्प का उपयोग करना चाहिए। – ninjalj

+0

आपके मुख्य प्रश्न के लिए, आपको शायद गिट मेलिंग सूची पर पूछना चाहिए, संभवतः सीसीइंग गिट-एसवीएन के लेखक। – ninjalj

+0

धन्यवाद @ निंजाल - मैं मेलिंग सूची पर कोशिश करूंगा। –

उत्तर

5

हाँ, यह सुरक्षित है।

  1. कंप्यूट प्रतिबद्ध और उसकी मूल के बीच अंतर:

    dcommit मूल रूप से प्रत्येक के लिए इस प्रतिबद्ध आप SVN को बढ़ावा दे रहे हैं नहीं करता है। (अनिवार्य रूप से, प्रतिबद्धता के लिए एक पैच बनाना।)

  2. एसवीएन प्रोटोकॉल पर इस अंतर को एक बदलाव के रूप में भेजें। एक बार यह पूरा हो जाने पर, प्रतिबद्धता अब एसवीएन सर्वर पर रहती है।
  3. नई प्रतिबद्धता, और अन्य उपयोगकर्ताओं द्वारा इस दौरान बनाए गए किसी भी अन्य नए काम को प्राप्त करें, और उन्हें उचित रूप से उचित गिट के रूप में स्टोर करें। गिट-एसवीएन शाखा रेफरी को नवीनतम को इंगित करने के लिए अपडेट किया जाएगा।
  4. किसी भी गिट-एसवीएन शाखा रेफरी पर संसाधित होने के बाद सभी कामों को दोबारा शुरू करें। (चूंकि संसाधित होने की प्रतिबद्धता अब सर्वर पर रहनी चाहिए, इसके परिणामस्वरूप स्थानीय प्रतिबद्धता को किसी भी अन्य रिबेस के अनुसार छोड़ दिया गया था।)

यदि आप चरण 2 के दौरान बाधा डालते हैं (जो है ऐसा लगता है) तो वर्तमान प्रतिबद्धता svn सर्वर पर निरस्त कर दी जाएगी। आपको चिंता के बिना फिर से डॉकिट करने में सक्षम होना चाहिए।

लेकिन, यदि आप पागल हैं (और आपको इस तरह वीसीएस के बीच इंटरऑपरेट करते समय होना चाहिए) तो आप पहले git svn rebase चला सकते हैं। यह एसवीएन पर किसी भी नई प्रतिबद्धता को खींच देगा (जिसमें वह प्रतिबद्धता शामिल है जिसे आपने धक्का देने की कोशिश की थी, अगर यह वास्तव में सर्वर-साइड सफल हो) और अपनी स्थानीय शाखा को इसके शीर्ष पर रीबेस करें।

+0

धन्यवाद @cdhowie। आखिरकार मेरे प्रॉम्प्ट को वापस करने के बाद मैंने एक रिबेस का प्रयास किया। इच्छा है कि मैं इससे मिली त्रुटि को पकड़ लेगा। यह एसवीएन सर्वर से मेरे स्थानीय गिट रेपो को अपडेट करने के लिए तैयार नहीं था। अगर मैं इसे फिर से बना सकता हूं तो मैं त्रुटि पोस्ट करूंगा। –

+0

क्या यह एक सीधी त्रुटि या सिर्फ एक पैच संघर्ष था? – cdhowie

+0

यह एक संघर्ष था, लेकिन मैं यह समझ नहीं पाया कि इसे कैसे हल किया जाए। मैंने 'svn' का उपयोग करके प्रतिबद्धता की पुष्टि की और फिर स्थानीय गिट भंडार को किसी अन्य 'गिट svn क्लोन' कॉल के साथ स्क्रैच से पुनर्निर्मित किया। –

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

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