एक औसत कंपनी में एक बड़े प्रोजेक्ट के लिए मुझे किस स्रोत नियंत्रण की आवश्यकता है? [बन्द है]


10

मुझे पता है कि गिट ओपन सोर्स प्रोजेक्ट्स के लिए बहुत अच्छा है। लेकिन मैं सोच रहा था: 1 वर्ष की परियोजना पर काम कर रहे 20 प्रोग्रामर के साथ एक कंपनी के लिए, कौन सा स्रोत नियंत्रण प्रणाली वांछनीय है? मैंने जो सुना, उसमें से Git पुलिंग का उपयोग करता है; यह मुख्य ट्रंक में अपने परिवर्तनों को प्राप्त करने के लिए किसी और के माध्यम से जाने की आवश्यकता से कम नहीं होगा? खासकर जब हर कोई एक ही समय पर काम कर रहा हो?

यह सिर्फ एक उदाहरण है जिसके बारे में मैं सोच रहा था। मुझे पता है कि एसवीएन का उपयोग कैसे किया जाता है, लेकिन मेरी पिछली नौकरी में भी हमने इसे अपनी परियोजनाओं पर उपयोग नहीं किया, क्योंकि सब कुछ PHP में किया गया था और आमतौर पर 1 सप्ताह की परियोजनाएं थीं। मेरे पास अपने स्थानीय कोड के लिए सिर्फ SVN था और इसे दूसरों के साथ उपयोग करने की आवश्यकता नहीं थी।

तो क्या अच्छा स्रोत नियंत्रण कर रहे हैं, और विशेष रूप से यह इसके लिए क्यों अच्छा है?


13
क्योंकि आप php में कोड VCS का उपयोग नहीं करने का एक कारण नहीं है।
क्रिस

@ क्रिस: यदि यह मेरे ऊपर था तो नेटवर्क पर एक रेपो होगा। लेकिन दुर्भाग्य से उस कंपनी ने इसका इस्तेमाल बिल्कुल नहीं किया। मैं सिर्फ कह रहा था कि मुझे स्रोत नियंत्रण के साथ कोई 'टीम' का अनुभव नहीं था

पर एक नजर डालें programmers.stackexchange.com/questions/940/...
ysolik

जवाबों:


29

आपकी टीम जो भी सहज हो, उसका उपयोग करें। सभी संस्करण नियंत्रण प्रणाली लगभग समान तरीके से समान कार्य करते हैं; पहिया को फिर से आविष्कार करने का कोई कारण नहीं है क्योंकि "यह बेहतर काम कर सकता है"। यदि आपकी टीम किसी भी चीज़ के साथ सहज नहीं है, तो उस विकल्प को चुनें जिसमें आपकी टीम के मानक आईडीई के साथ सबसे आसान एकीकरण है।


1
यह एक स्मार्ट और गैर-पक्षपातपूर्ण जवाब है - मुझे पसंद है।
मर्फ़

1
+1 स्रोत नियंत्रण प्रणाली पर्याप्त जटिल हैं, इसे कम करने के लिए आप जो कुछ भी कर सकते हैं वह बेहतर होगा!
दाल

3
वितरित चीजें VCSs केंद्रीकृत लोगों की तुलना में बहुत बेहतर करती हैं, और आप हमेशा एक DVCS का उपयोग एक केंद्रीकृत के रूप में कर सकते हैं, इसलिए दीर्घकालिक सामान्य प्रयोजन के लिए मैं Git या Mercurial का उपयोग करूंगा। इस तरह की स्थितियों के लिए, किसी भी कारण से आधुनिक वीसीएस अच्छी तरह से करेंगे, और तोड़फोड़ की संभावना सबसे आसान है।
डेविड थॉर्नले

निश्चित रूप से आपकी टीम को जो भी पता है उसका उपयोग करें या उपयोग करने में सहज हैं। (जब तक यह सीवीएस या आरसीएस नहीं है।) यदि आप कुछ नया करते हैं और सभी को इसे सीखना है, तो गणित करें: 20 लोग * 3 घंटे का प्रशिक्षण * $ 40 / घंटा = $ 2,400।
बैरी ब्राउन

या उनसे अपेक्षा करें कि वे 5 मिनट के भीतर एक नया वीसीएस सक्षम रूप से कैसे चुन सकते हैं ...
वैकल्पिक


4

मुझे लगता है कि यह इस बात पर निर्भर करता है कि आपको किस स्तर के समर्थन की आवश्यकता है।

मैं अपनी मजेदार परियोजनाओं के लिए घर पर गिट का उपयोग करता हूं जब समस्या होने पर मुझे समय लगता है, लेकिन मैं यह सीखने में समय बिता सकता हूं कि मुझे इसे ठीक करने की आवश्यकता क्या है।

काम में हम पेरफोर्स का उपयोग करते हैं क्योंकि 24/7 तकनीकी समर्थन होना जरूरी है। हमारे पास न्यूयॉर्क, जर्मनी, आयरलैंड और जापान में हर समय कोड पर काम करने वाले लोग हैं। अगर कोई समस्या है तो हमें ASAP का जवाब देना होगा। मेरे अनुभव में, Perforce के लोग वास्तव में जानते हैं कि वे क्या कर रहे हैं और सुझावों के लिए ग्रहणशील हैं।


1
+1: पर्फेक्ट्स काफी महंगा है, लेकिन आपको वह मिलता है जो आप भुगतान करते हैं।
कोई भी

3

जबकि मुझे लगता है कि यह प्रश्न व्यापक है और आपके आईटी ढांचे और नेटवर्क / विकास संरचनाओं के आधार पर, प्रति-कंपनी के आधार पर पते होने चाहिए, मुझे लगता है कि स्रोत / संस्करण नियंत्रण चुनने का सबसे महत्वपूर्ण पहलू वह नहीं है जो आप उपयोग करते हैं, लेकिन क्या इसका उपयोग व्यावहारिक रूप से संरचित और लागू किया गया है।

संरचना और उपयोग का प्रवर्तन संस्करण नियंत्रण के सबसे महत्वपूर्ण पहलू हैं।

आगे की योजना बनाएं और सभी को बोर्ड पर लाएं। उपयोग लागू करें। सिर्फ प्रोग्रामर्स के साथ ही नहीं, बल्कि प्रोजेक्ट्स (डॉक्यूमेंट, इमेज आदि) से जुड़ी हर चीज के साथ।

SVN एक अच्छा अनुप्रयोग है, और इसे कई ऐड-ऑन (बग / कार्य ट्रैकिंग सहित) के साथ एकीकृत किया जा सकता है, इसके लिए अलग सर्वर की आवश्यकता नहीं है और यह मुफ़्त है!

अन्य अच्छे स्रोत नियंत्रण अनुप्रयोग भी हैं, जैसा कि @EricBoersma ने कहा:

आपकी टीम जो भी सहज हो, उसका उपयोग करें।

बस जगह में प्रक्रियाएं और सर्वोत्तम अभ्यास हैं, और उन लोगों से खरीदें जो इसे लागू कर सकते हैं।


3

आपके पास कुछ बड़ी गलतफहमियां हैं कि गिट कैसे काम करता है। एक गेटकीपर के लिए एक पुल अनुरोध भेजना केवल एक ही तरीका है। इसे स्थापित करने के लिए कई अन्य तरीके हैं, जिसमें svn की तरह ही बहुत कुछ शामिल है, जो कि वास्तव में कितने लोग शुरू करने से पहले अनुकूलित करने के लिए पर्याप्त आराम करते हैं। एक DVCS जैसे गिट के साथ, आपके पास अपने वर्कफ़्लो के चारों ओर अन्य तरीके के बजाय अपने स्रोत नियंत्रण को व्यवस्थित करने के लिए पर्याप्त विकल्प हैं।


2

मुझे लगता था कि स्रोत नियंत्रण सिर्फ एक उपकरण था, और यह कि प्रत्येक उत्पाद ने कमोबेश यही काम किया। और फिर इन वितरित संस्करण नियंत्रण प्रणालियों के बिंदु ने मेरे साथ क्लिक किया।

वितरित संस्करण नियंत्रण आपको एक से अधिक केंद्रीय भंडार रखने की अनुमति देता है। कल्पना करें कि कोड स्थानीय परिवर्तन भंडार से पलायन कर रहा है, फीचर रिपॉजिटरी में, उत्पाद रिपॉजिटरी में, क्यूए रिपॉजिटरी में और अंत में जारी रिपॉजिटरी में।

व्यक्तिगत रूप से मैं किल्न नामक एक वाणिज्यिक उत्पाद का उपयोग करता हूं, जो एचजी पर आधारित है, लेकिन प्रमुख विशेषता संस्करण नियंत्रण वितरित की जाती है । यह डेवलपर से एक जारी उत्पाद में नए कोड के प्रवाह में क्रांति लाती है।


यह एक परियोजना के लिए बहुत सारे रिपॉजिटरी है। विलय के लिए क्या बुरा सपना है।
JBRWilkinson

3
मैं आपके साथ सहमत होता अगर यह सबवर्सन या सीवीएस के साथ विलय कर रहा होता। इन वितरित संस्करण नियंत्रण उत्पादों के काम करने का कारण यह है कि वे विलय को सरल और बड़े पैमाने पर संघर्ष मुक्त बनाते हैं।
माइकल शॉ

2

आप जानते हैं कि एसवीएन का उपयोग कैसे करें, फिर एसवीएन का उपयोग करें - केवल एक डीवीसीएस में माइग्रेट करें यदि उनमें कुछ ऐसा है जो आपको चाहिए।

जो वास्तव में महत्वपूर्ण है वह यह है कि आप किसी ऐसी चीज का उपयोग करते हैं जिसे आप उपयोग करना पसंद करेंगे, जिसका उपयोग करना आसान है। मार्टिन फाउलर ने वीसीएस के बारे में एक त्वरित एन सरल सर्वेक्षण किया , परिणाम बहुत दिलचस्प हैं।


2

मैंने अपनी पिछली नौकरी में git की स्थापना की जहां हम एक समान आकार की परियोजना (15 डेवलपर्स, 18 महीने की परियोजना) पर काम कर रहे थे और इसने अच्छा काम किया।

जिस तरह से हमने इसे स्थापित किया वह था:

हमारे पास एक git सर्वर था जो हमारा केंद्रीकृत आधिकारिक git सर्वर था। टीम के सदस्यों को एक दूसरे से सीधे खींचने से हतोत्साहित किया गया ताकि सभी परिवर्तन केंद्रीय सर्वर में चले जाएं।

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


0

मैं Microsoft से टीम फाउंडेशन सिस्टम (TFS) को कम से कम एक अच्छा लुक देता हूँ। मैं इसे आपकी टिप्पणियों से लेता हूं कि आप एक Microsoft दुकान नहीं हैं। हालाँकि, मेरी समझ यह है कि यदि आप विकास के लिए उस आईडीई का उपयोग करते हैं तो काफी मजबूत ग्रहण प्लग है।

मर्जिंग और ब्रांचिंग तंत्र अन्य स्रोत नियंत्रण प्रणालियों में से किसी के रूप में अच्छे काम करते हैं (svn से बेहतर, मेरे अनुभव में, और पेरफोर्स के रूप में के रूप में अच्छे हैं), लेकिन क्या वास्तव में चमकता है परियोजना ट्रैकिंग और उत्पाद के प्रबंधन पहलुओं, और निर्माण और तैनाती के लिए स्वचालन में बनाया गया है।

यदि आप एक वेब आधारित अनुप्रयोग लिख रहे हैं, तो स्वचालित यूआई परीक्षण ढांचे, और लोड परीक्षण ढांचे पर एक नज़र डालें जो आप काफी कम क्रम में बना सकते हैं और कॉन्फ़िगर कर सकते हैं। एक चिकना सुविधा: लोड परीक्षण में निर्मित मोबाइल ब्राउज़रों का अनुकरण करना।


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

मेरे पास बहुत सारे कारणों से टीएफएस का बहुत बुरा अनुभव है, बिल्कुल मैं माइक्रोसॉफ्ट के वातावरण में काम करता हूं और सामान्य तौर पर मैं .नेट और एमएस टूल्स का उपयोग करता हूं। मैं किसी को भी टीएफएस की सिफारिश नहीं करूंगा।
AFract
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.