प्रश्न सेबसगो वास्तव में बहुत अच्छे उत्तरों के लिए इंगित कर रहा है, लेकिन मुझे आपको बताएं वैसे भी व्यक्तिगत अनुभव। मैं संयुक्त राज्य भर में बिखरे हुए कुछ अन्य लोगों के साथ काम करता हूं जो अनिवार्य रूप से निजी परामर्श कार्य करते हैं। ग्राहक आकार में भिन्न होते हैं, लेकिन हमारी टीम छोटी है, और हम काफी तेजी से काम करते हैं। कोड वाणिज्यिक है लेकिन जब हम कर रहे हैं तो ग्राहकों के स्वामित्व में।
हम Mercurial का उपयोग करते हैं, लेकिन विशिष्ट उपकरण केंद्रीकृत के विपरीत वितरित संस्करण नियंत्रण का उपयोग करने के सामान्य वर्कफ़्लो से कम महत्वपूर्ण है। मेरे अनुभव में एक दो बड़ा उत्पादकता के लिए लाभ है कि मैं अब बिना काम करना चाहता हूँ:
- सबसे पहले: शाखाओं और विलय आसान है। यह वितरित होने का एक दुष्प्रभाव है, सख्ती से एक आवश्यकता नहीं है, लेकिन यह एक डीवीसीएस के लिए महत्वपूर्ण है और मुझे अपने काम के लिए यह महत्वपूर्ण लगता है। हम में से प्रत्येक व्यक्ति को प्रत्येक सुविधा को स्वतंत्र रूप से ब्रांच कर सकते हैं जिस पर हमें काम करने की ज़रूरत है, इसे सैंडबॉक्स में काम करें (हमारे साझा भंडार से हस्तक्षेप किए बिना) और जब हम तैयार हों तो इसे वापस विलय करें। दूसरे के परिवर्तनों के साथ "जारी रखना" कभी-कभी मर्ज करने के विकल्प के साथ, मर्ज को फेंकने के विकल्प के साथ और संघर्ष को हल करने से निपटने के मामले में जारी रहना इस पल में बहुत अधिक प्रयास है। हम विशिष्ट परिवर्तनों को पकड़ सकते हैं और उन्हें टेस्ट शाखा में एक साथ फेंक सकते हैं, और अगर हम उन्हें पसंद करते हैं तो उन्हें नज़रअंदाज़ करते हैं या उन्हें टॉस करते हैं। चीजों को आज़माने, उन्हें साझा करने और केवल सर्वोत्तम परिणामों को रखने की क्षमता गंभीर लाभ है। जैसा कि मैंने कहा है कि यह एक नहीं है, मैं इस बिंदु पर बिना आराम से काम कर सकता हूं।
- ऑफ़लाइन काम करना। यह एक बड़े सौदे की तरह नहीं लगता है, जब तक कि आप अपने सामान्य वातावरण में काम नहीं कर रहे हों। मैं छुट्टी, या यात्रा पर जा सकता हूं, या आउटेज कर सकता हूं, या बस अपने लैपटॉप को एक अच्छे दिन के बाहर ले जाना चाहता हूं, और काम करना जारी रखता हूं। काम करने से रोकने के बिना उठने और जाने में सक्षम होने का मनोवैज्ञानिक लाभ, या मेरे काम की जांच करने की मेरी क्षमता खोना बहुत वास्तविक है।
उन प्रभाव है, जो अपने सभी परियोजनाओं पर लागू परे काम से संबंधित और नहीं, हमारे विशेष व्यवस्था है, जो व्यावसायिक उपयोग और जो अनपेक्षित था के बारे में अपने प्रश्न से संबद्ध करने के लिए एक लाभ विशिष्ट आया: ग्राहक वास्तव में कर सकते हैं कोड पर काम करें।वे एक स्नैपशॉट ले सकते हैं, स्थानीय परिवर्तन कर सकते हैं, और या तो हमें वापस फिक्स भेज सकते हैं या किसी विशेष उद्देश्य के लिए ट्वीड कोड रख सकते हैं। यह उन्हें शामिल, (हम उनके परिवर्तनों में विलय नहीं है जब तक कि वे तैयार हैं रखने, और उन्हें कुछ भी तोड़ने के बिना बातें tweak करने के लिए अनुमति में नहीं मिल रहा है बहुत दूर सिंक्रनाइज़ेशन से बाहर वे क्या चाहते हैं के साथ में में बहुत मदद की है - एक समान नियम हम अपने लिए लागू होते हैं।)
हम शिकायतों का एक बहुत जरूरत नहीं है। कुछ लोगों को इसका उपयोग करने में मदद मिलती है, हालांकि मर्कुरियल का कमांड सेट सबवर्जन के लिए काफी करीब है (जिसे हम उपयोग करते थे) कि हमें बहुत परेशानी नहीं हुई है। यहां तक कि कभी-कभी गंदगी, गलती से बाइनरी या फ़ाइलों को चेक-इन नहीं किया जाना चाहिए में जाँच की तरह, हम चारों ओर क्योंकि हम उन परिवर्तनों के बिना भंडार हमारे मुख्य एक फिर से बनाने, और जगह ले सकता है अगर हम करने की आवश्यकता हो सकती है। यह लोगों के बड़े समूह के लिए अच्छी तरह से स्केल नहीं करता है, लेकिन एक छोटी 3-4 व्यक्ति टीम के लिए काफी अच्छा काम करता है।
एक नकारात्मक मुझे लगता है कि के बारे में सोच सकते हैं वास्तव में एक समस्या है, आसानी से शाखा करने में सक्षम होने का एक पक्ष प्रभाव है: यदि आपके पास पर्याप्त लंबित काम है कि आप इसे का ट्रैक खो हो सकता है। यह एक लिखित दस्तावेज़ के कई ड्राफ्ट होने जैसा ही है: आस-पास पर्याप्त प्रतियां पास करें और आपको याद नहीं है कि कौन सी प्रति में आपके इच्छित परिवर्तन थे। यह सीधे उपकरण का दोष नहीं है, और अगर कुछ भी विलय करने में सक्षम उपकरणों की तुलना में अलग-अलग काम को वापस लाने में आसान बनाता है। लेकिन यह एक खतरा है। यह प्रबंधन करने के लिए एक ही रास्ता मैं के बारे में पता लिख उपयोगी प्रतिबद्ध लॉग, उपयोगी शाखा विवरण, और एक साथ बहुत से खुला कार्यों रखने की कोशिश कर नहीं के बारे में अनुशासित किया जाना है। दूसरे शब्दों में भी एक बहुत अच्छा वर्कफ़्लो अभी भी वर्कफ़्लो है और ध्यान देने की आवश्यकता है या यह हाथ से बाहर हो जाता है।
मैं मर्क्युरियल साथ विशेष मुद्दों (मैं वास्तव में चाहते हैं नामित शाखा समर्थन सिर्फ एक थोड़ा थोड़ा आसान होने के लिए) और है Git के साथ (मैं वास्तव में, आदेश अधिक सहज ज्ञान युक्त होना निर्धारित चाहते हैं अब भी), लेकिन वे शिकायतों हैं कोने के मुद्दों के बारे में जो महान परिचितता के साथ आते हैं। वे तब भी संभव नहीं होंगे जब इन उपकरणों ने लिफाफे को धक्का नहीं दिया था जो मैंने सोचा था कि वीसीएस उन चीजों से कहीं ज्यादा कर सकता था जो मैंने उन्हें शुरू करने से पहले पता था।
http://stackoverflow.com/search?q=distributed+version+control – arathorn