2009-03-31 11 views
10

ऐसा लगता है कि कई लोग वितरित संस्करण नियंत्रण के बारे में पढ़ते हैं और स्पष्ट रूप से समझते हैं कि यह ओपन सोर्स डेवलपमेंट के लिए एक अच्छी बात क्यों है, कई वितरित डेवलपर्स स्वतंत्र रूप से कार्य करते हैं और प्रबंधन से जनादेश के बजाय अपने स्वयं के विकल्पों के अनुसार। लेकिन इस छाप से कई लोग इस विचार को बनाते हैं कि ओपन-सोर्स पर्यावरण में DVCS उपयोगी केवल उपयोगी है; वे नहीं देख सकते कि यह एक ऐसे संगठन की मदद कैसे करेगा जो मालिकाना उत्पाद जारी करता है और इसके संस्करण नियंत्रण प्रणाली को बाहरी रूप से एक्सेसिबल नहीं बनाता है, या यह एक डेवलपर की मदद कैसे करेगा।व्यवसाय को वितरित संस्करण नियंत्रण का उपयोग क्यों करना चाहिए?

सीवीएस या सबवर्जन जैसे केंद्रीय संस्करण नियंत्रण के बजाय वितरित संस्करण नियंत्रण जैसे गिट, डार्क्स, या मर्कुरियल जैसे वितरित संस्करण नियंत्रण का उपयोग करना चुनता है, तो कुछ लाभ क्या हैं?

उत्तर

5

सबसे पहले, एक डीवीसीएस केंद्रीकृत कोड प्रबंधन को रोकता नहीं है: आप अभी भी एक संदर्भ को "संदर्भ" के रूप में सेट कर सकते हैं, सभी डेवलपर्स इसे खींच रहे हैं।
तो लाभ कोड (वास्तव में एक दुष्प्रभाव) यहां एक केंद्रीय बैकअप डेटा बनाए रखने के दौरान डेटा प्रतिकृति के माध्यम से एक प्राकृतिक बैकअप है।

लेकिन वास्तविक लाभ इंटर-प्रोजेक्ट क्रॉस-डेवलपमेंट से आता है: यानी जब आपको दूसरी परियोजना से "अन्य परियोजना से" विकास की आवश्यकता होती है, तो आपके काम को आगे बढ़ाने के लिए: आप आसानी से एक को खींच सकते हैं कामकाजी शाखा को अपने भंडार में (इसे ट्रैक करके), केंद्रीय भंडार में इसे आधिकारिक तौर पर प्रकाशित करने के लिए इंतजार किए बिना।

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

एक भी एक DVCS साथ देख सकते हैं कि जिस तरह से प्रबंधित एक प्राकृतिक "सफाई" प्रक्रिया (केवल क्या "वैध" है - उदाहरण के लिए परीक्षण किया कम से कम इकाई - केंद्रीय रेपो में प्रकाशित होने के लिए हो जाता है) एक क्लीनर के इतिहास के साथ, (सभी मध्यवर्ती प्रतिबद्ध स्थानीय भंडारों की विषय शाखाओं में रह सकते हैं)।

0

मुझे नहीं लगता कि यह ओपन-सोर्स डेवलपमेंट के लिए बेहतर क्यों है। वाणिज्यिक परियोजनाओं में कई डेवलपर्स एक ही समय में विभिन्न चीजों पर काम कर रहे हैं। क्या आपका "प्रबंधन से जनादेश" आपको बताता है कि कौन सी फाइलें संपादित करें और कब?

1

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

11

तर्क मेरे पीछे की ओर लगता है।

यह देखते हुए कि एक केंद्रीकृत संशोधन नियंत्रण प्रणाली एक वितरित प्रणाली के कई उपयोग मामलों में से एक है, इस तरह के प्रतिबंध लागू करने से कंपनी को कैसे फायदा होता है?

मुझे अनुभव से पता है कि जब एक पी 4 सर्वर धीमा हो जाता है या टूट जाता है या आप इससे कुछ दूर या कुछ दूर हो जाते हैं, हर कोई जो इसका उपयोग कर रहा है उसे काम करना बंद करना है।

लोग "विमान" तर्क को एक स्ट्रॉमैन के रूप में पेश करना पसंद करते हैं, लेकिन मैं वहां गया हूं जहां यह वास्तव में महत्वपूर्ण है। इंटरऑप इवेंट या ग्राहक डेमो पर साइट पर जहां हमें सीमित नेटवर्क समर्थन वाले वातावरण में अब बनाना है और उन सभी कार्यों को और वापस आना है, जब मैं गलती करता हूं तो मैं वापस लौटने में सक्षम होना चाहता हूं।

दो तर्क है कि मैं मेरे लिए अच्छी तरह से रिंग नहीं है सुना है:

  1. सभी कोड नहीं लेने के लिए और चला सकते हैं।
  2. ताला लगा

संख्या 1 बस बेवकूफ है। हो सकता है कि यह पूर्ण इतिहास प्राप्त करने के लिए थोड़ा कठिन है (और यदि मैं नहीं कर सकता, तो कोई संशोधन नियंत्रण प्रणाली नहीं है), लेकिन जब हम इस तरह के डर के बारे में बात कर रहे हैं, तो मैं बस नवीनतम पकड़ ले सकता हूं संशोधन और यह खतरनाक है।

संख्या 2 वास्तव में नौकरी के लिए गलत उपकरण का उपयोग करने की कोशिश करने जैसा लगता है। मुझे आरसीएस उपयोगकर्ताओं से एंटी-सीवीएस तर्क मिलते थे क्योंकि उन्होंने वास्तव में सोचा था कि आपको प्रत्येक फ़ाइल प्रत्येक समय से दो लोगों को रोकने के लिए, मुझे नहीं पता, काम करना चाहिए।

संचार बैंड से बाहर है। यदि आपके पास बड़ी, अनावश्यक फ़ाइलें हैं, तो मुझे लगता है कि उनके बारे में बात करना ठीक है। आईएमओ, इस समस्या वाले कई लोग एक संशोधन नियंत्रण प्रणाली नहीं चाहते हैं, लेकिन एक स्नैपशॉटिंग फाइल सिस्टम (जेएफएस, 9एफएस, ड्रॉप बॉक्स, आदि ...)।

सामान्य रूप से, मुझे नहीं पता कि लोग क्यों पूछते हैं कि "मुझे अपने डेवलपर टूल क्यों देना चाहिए जो सस्ता, तेज़, अधिक विश्वसनीय, अधिक मजबूत, और उन्हें अधिक उत्पादक बनाते हैं?" प्रश्नों के प्रकार

+1

"कैसे इस तरह के एक प्रतिबंध कंपनी को लाभ लागू करने है", मुझे नहीं लगता कि यह करता है, लेकिन आप यह सवाल खड़ा है कि यह एक नया संगठन है ... एक बड़ी देव टीम के लिए, सवाल यह है कि क्या आपके मौजूदा वीसीएस से आगे बढ़ने का प्रयास इसके लायक है या नहीं। जब आपके पास बहुत छोटी टीम या ब्रांड नई कंपनी होती है तो यह बहुत आसान विकल्प है। –

5

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

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

3

गिट के साथ परंपरागत केंद्रीय भंडार आधारित प्रणालियों के लिए कई पुल हैं।

मुझे उदाहरण के लिए svn से svn के लिए एक बेहतर क्लाइंट होने के लिए गिट मिलती है। इसलिए यदि कंपनी केंद्रीय रिपोजिटरी सिस्टम का उपयोग करने पर जोर देती है तो भी आप केंद्रीय भंडार को बनाए रखते हुए गिट के व्यक्तिगत लाभ प्राप्त कर सकते हैं।

+0

मुझे अपने पक्ष में स्थानीय रूप से गिट का उपयोग करके केंद्रीय svn repos से निपटने के दौरान बहुत लचीलापन मिलता है, और svn में विलय के डरावने से निपटने के बजाय गिट द्वारा प्रदान की गई बड़ी विलय हैंडलिंग होती है। – Kzqai

0

चेक यहाँ से अधिक लाभ ...

http://blog.teamtreehouse.com/why-you-should-switch-from-subversion-to-git 

http://www.ehow.com/info_12217814_git-commit-vs-push.html 
संबंधित मुद्दे