हम बहुत छोटे आकार की एक नई टीम बूटस्ट्रैप कर रहे हैं (2-5 कहते हैं) मेरा सवाल है: इस प्रकार की टीमों के लिए किस प्रकार का संस्करण नियंत्रण सबसे अच्छा काम करता है, या तो केंद्रीकृत या वितरित किया जाता है।
हम बहुत छोटे आकार की एक नई टीम बूटस्ट्रैप कर रहे हैं (2-5 कहते हैं) मेरा सवाल है: इस प्रकार की टीमों के लिए किस प्रकार का संस्करण नियंत्रण सबसे अच्छा काम करता है, या तो केंद्रीकृत या वितरित किया जाता है।
जवाबों:
सभी तरह से वितरित, वास्तव में अब IMHO के लिए कोई मतलब नहीं है, खासकर अगर आप टीम के विकास के बारे में बात कर रहे हैं।
Mercurial के लिए एक और वोट, विंडोज़ और bitbucket.org के तहत सेटअप करने के लिए कोई बाधा नहीं है। असीमित स्थान के साथ मुफ्त रिपॉजिटरी (जो निजी हो सकती है) है।
यदि आप एक ओपन सोर्स प्रोजेक्ट पर काम करने की योजना बना रहे हैं, तो git और Github अधिक पर्याप्त / लोकप्रिय लगते हैं। हालाँकि, अगर आपने डीवीसीएस में उद्यम नहीं किया है, तो मैं आपको मर्क्यूरियल और इस भयानक गाइड से शुरू करने की सलाह देता हूं ।
एक है कि आप सभी लगातार उपयोग करेंगे
[व्यक्तिगत रूप से, मुझे मर्क्यूरियल पसंद है]
शायद सबसे अच्छा जवाब "आप जो भी सहज हों।" व्यक्तिगत सामान पर काम करते समय भी, मैं Git का उपयोग करता हूं। यह ऊपर और नीचे दोनों को स्केल करने का एक बहुत अच्छा काम करता है और मर्क्यूरियल के साथ मेरा सीमित अनुभव उसी के बारे में है।
मुझे लगता है कि आपको वह चुनना चाहिए जो आप सहज हैं। एक छोटी सी टीम में, आपके पास अलग-अलग कोड-ट्री (जैसे लिनक्स-कर्नेल) नहीं होंगे, इसलिए एक केंद्रीय भंडार ठीक है। लेकिन आपके पास यह सेटअप वितरित वीसीएस के साथ भी हो सकता है। इसलिए मैं लोकप्रियता और व्यक्तिगत अनुभव के साथ जाऊंगा। लोकप्रिय SVN, git और Mercurial हैं। आपको यह तय करना चाहिए कि आपकी टीम के साथ उनका कौन सा ओ सबसे अच्छा उपयोग किया जाता है (अनुभव, आपके चुने हुए आईडीई आदि में टूल-सपोर्ट)।
यह वास्तव में निर्भर करता है कि आपके डेवलपर्स बहुत सारे कोड ऑफ़लाइन विकसित करने जा रहे हैं या नहीं, लेकिन केवल एक वितरित या केंद्रीकृत भंडार के बीच चयन करना है, क्योंकि यह पहली चीज है जिसे आपको तय करना चाहिए। फिर, यदि आप तय करते हैं कि SVN की तुलना में एक केंद्रीकृत दृष्टिकोण बेहतर काम करता है, तो आपको इसकी आवश्यकता है। दूसरी तरफ यदि आप गिट के लिए जाने की तुलना में वितरित दृष्टिकोण के लिए जाते हैं, तो खिड़कियों पर भी यह काफी अच्छा है क्योंकि अब आपके पास कछुआ गिट है (वही इंटरफ़ेस जो svn के लिए भी मौजूद है)। इसके अलावा, आईडीई सपोर्ट पर इतना ध्यान न दें क्योंकि हो सकता है कि अगर आप कभी भी इसका उपयोग करते हैं तो आपको एक आश्चर्यजनक आश्चर्य मिल सकता है, और आपको लग सकता है कि जिन फाइलों को कमिट नहीं किया जाना चाहिए, वे आईडीई द्वारा आपकी ओर से प्रतिबद्ध हैं।
अपनी टीम से पूछें, अगर कोई इसकी देखभाल करना चाहता है। स्थिर प्रणाली और जिम्मेदार व्यक्ति के लिए बेहतर है, अच्छी प्रणाली की तुलना में जब कोई इसकी परवाह नहीं करता है, और कोई भी इसे बैकअप से पुनर्स्थापित करने में सक्षम नहीं है।
यदि ऐसा कोई व्यक्ति है - वह पहले से ही जानता है कि क्या उपयोग करना है, तो बस उसके निर्णय को स्वीकार करें। यदि नहीं - कुछ होस्ट समाधान प्राप्त करें। यह बहुत बेवकूफी भरा होगा जीआईटी (सर्वश्रेष्ठ में से एक) अगर सभी डेवलपर्स ने कभी भी शेल / लिनक्स को नहीं छुआ।
यह "नॉनटेक्निकल" लोगों की संख्या पर भी निर्भर करता है, जिन्हें पढ़ने / योगदान करने की आवश्यकता है। बस यह सुनिश्चित करें कि वे इसका उपयोग कर सकते हैं, और उपकरण उपलब्ध हैं।
SVN व्यापक रूप से टूल में समर्थित है। टूलींग कुंजी है; विभिन्न लोगों के पास अलग-अलग कौशल सेट होंगे। कुछ कमांड लाइन पसंद करेंगे, कुछ आईडीई आधारित टूल पसंद करेंगे, कुछ ग्राफिकल टूल पसंद करेंगे। फिलहाल SVN सबसे व्यापक रूप से समर्थित उपकरण है।
उस मर्क्यूरियल या गिट के अलावा।
मुझे लगता है कि छोटी कंपनियों में कुछ चीजों के केंद्रीकृत होने के तर्क होते हैं। (ऑफसाइट बैकअप के बारे में उदाहरण के लिए सोचें। जब आपके पास एक परियोजना पर काम करने वाले केवल 2 व्यक्ति हों और वे एक ही इमारत में आवास कर रहे हों और एक आग हो, तो दो कंप्यूटरों में से सभी विकेंद्रीकृत पर्याप्त नहीं हो सकते हैं।)
हालाँकि: आंशिक रूप से केंद्रीकृत समाधान होने से आप एक केंद्रीकृत प्रणाली तक सीमित नहीं रहते। आप बस बाहर के सर्वर पर धक्का दे सकते हैं जैसे गिट या मर्क्यूरियल।