2008-11-26 13 views
8

मेरी टीम सीवी में एक परियोजना पर काम करती है जिसमें लगभग 20,000 जावा फाइलें होती हैं। फ़ाइलों की संख्या के कारण, सीवीएस अपडेट करने में कुछ समय लगता है। मैं आमतौर पर पूरे पेड़ की लगभग 5 प्रतियों को चेक आउट करता हूं, ताकि प्रत्येक के लिए कौन सी फाइलें संशोधित की जा सकें, इस बारे में चिंता किए बिना विभिन्न अनुरोधों में जांच करना आसान हो जाता है। सभी 5 पेड़ों को अद्यतित रखने और एक दूसरे के साथ समन्वयित करने के लिए यह एक वास्तविक दर्द है।सीवीएस के साथ अकेले सीवी के साथ गिट है?

मैंने पढ़ा है कि रिमोट सीवी सर्वर के साथ स्थानीय रूप से गिट का उपयोग करना काफी आसान है, और यह गिट तेज है। क्या मेरे स्थानीय पेड़ों को अद्यतन करने में काफी कमी आएगी?

मुझे एहसास है कि निचली सीमा एक सीवी अपडेट करने का समय है। लेकिन मैं सोच रहा हूं कि एक बार पहला पेड़ अद्यतित होने के बाद, 4 और सीवी अपडेट कमांड करने के बजाए, पहले 4 को जल्दी से सिंक करना संभव हो सकता है। क्या मैं गिट को सही ढंग से समझता हूं?

उत्तर

8

मैं एक बड़ी परियोजना (10k फ़ाइलों के क्रम में) पर एक सबवर्जन क्लाइंट के रूप में गिट का उपयोग करता हूं। गिट तेज है, वास्तव में तेज़ है। यह इतना तेज़ है कि मैं केवल एक कार्यरत क्लोन रखता हूं, और उसी क्लोन के भीतर फीचर शाखाओं के बीच स्विच करता हूं। आप की तरह, जब मैंने सबवर्सन का उपयोग किया तो मेरे पास दो या तीन समान चेकआउट होंगे और नियमित रूप से उनके बीच स्विच करेंगे क्योंकि मेरे पास कई चीजें एक साथ प्रगति पर थीं। कभी-कभी यह बहुत भ्रमित होना पड़ता है। गिट की फीचर्स जैसे लाइटवेट शाखाएं, स्टैश, और "गिट ऐड-पी" के साथ, मुझे लगता है कि अब मुझे एकाधिक चेकआउट की आवश्यकता नहीं है। मैं सब कुछ एक निर्देशिका में कर सकता हूं, और उन बदलावों को खोने के बारे में चिंता न करें जिन्हें मैं भूल गया था या गलती से ओवरराइट कर रहा था।

मैंने सीवीएस के साथ गिट का उपयोग नहीं किया है, लेकिन यदि इसका एकीकरण गिट-एसवीएन की तरह कुछ है तो यह कोई समस्या नहीं होगी।

+0

सीवीएस _client_ के रूप में गिट का एकीकरण एसवीएन की तुलना में खराब है (कम से कम यह प्रयुक्त होता है, जिन परियोजनाओं को मैंने अनुशंसित किया है, सीवीएस इसका उपयोग कर चुके हैं, इसलिए मेरे पास हालिया अनुभव नहीं है)। एक सीवीएस _server_ स्रोतों में एक गिट भंडार के लिए अग्रभाग के रूप में चल रहा है, लेकिन मैंने हमेशा यह माना है कि केवल बीमार दिमाग का डिमेंटेड आउटपुट, इसलिए ...)। – vonbrand

10

हम काम पर कुछ ऐसा करते हैं। हम मूल रूप से कोड के एकल, अद्यतन सीवीएस संस्करण के रूप में गिट में master शाखा का उपयोग करते हैं; हम वहां कोई विकास नहीं करते हैं, बस सीवीएस अपडेट। फिर, हमारी सभी विकास परियोजनाएं फीचर शाखाओं पर होती हैं जिन्हें हम पुनर्जीवित करते हैं। जब हम master शाखा पर सीवीएस अपडेट करते हैं तो हम उन परिवर्तनों को master पर प्रतिबद्ध करते हैं और फिर master के विरुद्ध हमारी अन्य विकास शाखाओं को फिर से दबाते हैं।

यह आदर्श नहीं है - यह अन्य लोगों के साथ साझा करने वाली शाखाओं को मुश्किल बनाता है। लेकिन, हम एक साथ कई विकास परियोजनाओं का प्रबंधन कर सकते हैं और आसानी से शाखाओं, विलय, और diffs कर सकते हैं। और, हम केवल master शाखा पर आवश्यकतानुसार सीवीएस के साथ बातचीत करते हैं।

+0

बहुत अच्छा लगता है। क्या सीवीएस की तुलना में रिबेस तेजी से बढ़ रहा है? –

+0

हाँ, यह एक टन तेज है क्योंकि यह सब स्थानीय है। यह मूल रूप से आपकी शाखा से भिन्नता उत्पन्न करता है और उन्हें शाखा के नए सिर पर लागू करता है। –

+0

@ क्रेग.मोटलिन, गिट में ऐसे ऑपरेशन लगभग तात्कालिक होते हैं। सीवीएस से वर्तमान संस्करण की जांच धीमी है (शायद मूल सीवीएस से धीमी)। Whay एक सच्चा भालू है पहला चेकआउट (या तो सीवीएस या एसवीएन), यह _all_ संशोधन को चूसने के लिए था। यह आसानी से एक बड़े भंडार के लिए सचमुच दिन ले सकता है। प्रक्रिया अपेक्षाकृत कमजोर है, जिसमें यह सर्वर से कनेक्शन खो देता है और इसे पुनरारंभ करना पड़ता है (और जब यह समाप्त नहीं होता है, कुछ भी चेक आउट नहीं होता है, घबराओ मत, जारी रखें)। एक बार आपके पास सीवीएस भंडार क्लोन की एक प्रतिलिपि हो जाने के बाद, आप बस निर्देशिका को कॉपी कर सकते हैं। – vonbrand

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