2008-09-16 9 views
134

यहां लोग क्या गिट, मर्कुरियल और बाजार की सापेक्ष ताकत और कमजोरियों के रूप में देखते हैं?गिट, मर्कुरियल और बाज़ार की सापेक्ष ताकत और कमजोरियां क्या हैं?

उनमें से प्रत्येक को एक दूसरे के साथ और एसवीएन और पर्सफोर्स जैसे संस्करण नियंत्रण प्रणाली के खिलाफ विचार करने पर, किन मुद्दों पर विचार किया जाना चाहिए?

एसवीएन से इन वितरित संस्करण नियंत्रण प्रणालियों में से एक में माइग्रेशन की योजना बनाने में, आप किन कारकों पर विचार करेंगे?

+1

Mercurial और Git के बीच एक विंडोज विशिष्ट तुलना के लिए यह प्रश्न देखें: http://stackoverflow.com/questions/2550091/best-support-now-on-windows-mercurial-or-git – alexandrul

+0

बीटीडब्ल्यू, मैं चाहता हूं विभिन्न डीवीसीएस सिस्टम के उपयोग के प्रतिशत देखें। – sergiol

उत्तर

142

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

बाजार काफी तेज़ है (उथले इतिहास वाले पेड़ों के लिए बहुत तेज़ है, लेकिन वर्तमान में इतिहास की लंबाई के साथ खराब तरीके से स्केल करता है), और परंपरागत एससीएम (सीवीएस, एसवीएन, के कमांड लाइन इंटरफेस से परिचित लोगों के लिए आसान है। आदि)। Win32 को अपनी विकास टीम द्वारा प्रथम श्रेणी का लक्ष्य माना जाता है। इसमें विभिन्न घटकों के लिए एक प्लग करने योग्य आर्किटेक्चर है, और इसके भंडारण प्रारूप को अक्सर बदल देता है; इससे उन्हें नई विशेषताओं (जैसे विभिन्न अवधारणाओं के आधार पर संशोधन नियंत्रण प्रणाली के साथ एकीकरण के लिए बेहतर समर्थन) और प्रदर्शन में सुधार करने की अनुमति मिलती है। बाजार टीम निर्देशिका को ट्रैक करने और प्रथम श्रेणी की कार्यक्षमता का समर्थन करने पर विचार करती है। वैश्विक स्तर पर अद्वितीय संशोधन-आईडी पहचानकर्ता सभी संशोधनों के लिए उपलब्ध हैं, पेड़-स्थानीय revnos (मानक संशोधन संख्या, svn या अन्य पारंपरिक एससीएम द्वारा उपयोग किए जाने वालों के समान) संशोधन की पहचान के लिए सामग्री हैश के स्थान पर उपयोग किया जाता है। बाजार में "हल्के चेकआउट" के लिए समर्थन है, जिसमें इतिहास को स्थानीय सिस्टम में कॉपी करने के बजाय रिमोट सर्वर पर रखा जाता है और जब आवश्यक हो तो नेटवर्क पर स्वचालित रूप से संदर्भित किया जाता है; वर्तमान में, यह डीएससीएम के बीच अद्वितीय है।

दोनों के पास एसवीएन एकीकरण का कुछ रूप उपलब्ध है; हालांकि, बीजीआर-एसवीएन गिट-एसवीएन की तुलना में काफी सक्षम है, मुख्य रूप से उस उद्देश्य के लिए प्रस्तुत बैकएंड प्रारूप संशोधन के कारण। [अद्यतन, 2014 तक: तीसरे पक्ष के वाणिज्यिक उत्पाद सबगिट एसवीएन और गिट के बीच एक द्विपक्षीय इंटरफेस प्रदान करता है जो बीजीआर-एसवीएन के निष्ठा में तुलनीय है, और काफी अधिक पॉलिश; मैं दृढ़ता से बजट और लाइसेंसिंग बाधाओं परमिट करते समय गिट-एसवीएन के उपयोग की अनुशंसा करते हैं]।

मैंने बड़े पैमाने पर Mercurial का उपयोग नहीं किया है, और इसलिए इसे विस्तार से टिप्पणी नहीं कर सकते - यह ध्यान में रखते हुए कि गिट की तरह, सामग्री-हैश संशोधन के लिए संबोधित कर रहा है; गिट की तरह, यह निर्देशिका को प्रथम श्रेणी की वस्तुओं के रूप में नहीं मानता है (और एक खाली निर्देशिका को स्टोर नहीं कर सकता)।हालांकि, यह गिट को छोड़कर किसी अन्य डीएससीएम की तुलना में तेज़ है, और इसके प्रतिस्पर्धियों की तुलना में कहीं बेहतर आईडीई एकीकरण (विशेष रूप से ग्रहण के लिए) है। इसकी प्रदर्शन विशेषताओं को देखते हुए (जो कि गिट के पीछे केवल थोड़ी सी है) और इसके बेहतर क्रॉस-प्लेटफ़ॉर्म और आईडीई समर्थन, Mercurial Win32- केंद्रित या आईडीई-बाध्य सदस्यों की बड़ी संख्या वाले टीमों के लिए आकर्षक हो सकता है।

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

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

[लेखक के बारे में: मैं काम के लिए गिट और पर्सफोर्स का उपयोग करता हूं, और बाज़ार मेरी निजी परियोजनाओं के लिए और एक एम्बेडेड लाइब्रेरी के रूप में; मेरे नियोक्ता के संगठन के अन्य हिस्सों में मर्कुरियल का भारी उपयोग होता है। पिछले जीवन में मैंने एसवीएन के आसपास स्वचालन का एक बड़ा सौदा बनाया; इससे पहले मुझे जीएनयू आर्क, बिटकिपर, सीवीएस और अन्य के साथ अनुभव है। गिट पहले से काफी दूर था - ऐसा लगता है कि जीएनयू आर्क की तरह एक अवधारणा-भारी वातावरण होने के नाते, उपयोगकर्ता के वर्कफ़्लो के अनुकूल होने के लिए बनाए गए टूलकिट के विपरीत - लेकिन मैं तब से काफी सहज हूं यह]।

+0

हेया। मैं सिर्फ आपको यह जानना चाहता हूं कि सीएससीवीएस का उपयोग अभी भी लॉन्चपैड कोड आयात चलाने के लिए किया जा रहा है, और जब मैंने वहां काम किया तो कैननिकल संस्करण जारी किया गया था। – ddaa

2

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

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

+0

तो, शायद एक मेटा-प्रश्न: प्रश्न क्या हैं और विचार करने वाले कारक क्या हैं? –

8

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

गिट, ठीक है, अनियमित के लिए नहीं है। यह Mercurial और बाजार दोनों की तुलना में बहुत तेज है, और लिनक्स कर्नेल का प्रबंधन करने के लिए लिखा गया था। यह तीनों में से सबसे तेज़ है और यह तीनों में से सबसे शक्तिशाली है, काफी मार्जिन से। गिट के लॉग और प्रतिबद्ध हेरफेर उपकरण बेजोड़ हैं। हालांकि, यह भी सबसे जटिल और उपयोग करने के लिए सबसे खतरनाक है। एक प्रतिबद्धता खोना या भंडार को बर्बाद करना बहुत आसान है, खासकर यदि आप गिट की आंतरिक कार्यप्रणाली को समझ नहीं पाते हैं।

+10

Mercurial वास्तव में गिट के बराबर है। प्रदर्शन बड़ा अंतर नहीं है। लेकिन बाजार, Mercurial और गिट की तुलना में धीमी गति से है। –

+0

@jpartogi - बाज़ार के प्रदर्शन संख्या अपने प्रतिस्पर्धियों की तुलना में बहुत तेज़ी से सुधार कर रही हैं, इसलिए मैं इस तरह के दावे को लेकर सावधान रहूंगा - विशेष रूप से भंडारण रिफैक्टरिंग के साथ जो वर्तमान रिलीज में पूर्वावलोकन के रूप में उपलब्ध है और 2.0 में डिफ़ॉल्ट बनने के लिए निर्धारित है। –

1

वितरित संस्करण नियंत्रण प्रणाली (डीवीसीएस) केन्द्रीकृत वीसीएस की तुलना में विभिन्न समस्याओं को हल करती है। उनकी तुलना करना हथौड़ों और पेंचदार की तुलना करना है।

Centralized VCS सिस्टम इस उद्देश्य के साथ डिजाइन किए गए हैं कि एक सही स्रोत है जो धन्य है, और इसलिए अच्छा है। सभी डेवलपर्स उस स्रोत से (चेकआउट) काम करते हैं, और उसके बाद अपने परिवर्तन (प्रतिबद्ध) जोड़ते हैं, जो तब भी धन्य होते हैं। सीवीएस, सबवर्जन, क्लीयरकेस, पर्सफोर्स, विजुअलसोर्ससेफ और अन्य सभी सीवीसीएस के बीच एकमात्र असली अंतर वर्कफ़्लो, प्रदर्शन और एकीकरण में है जो प्रत्येक उत्पाद प्रदान करता है।

Distributed VCS सिस्टम इस उद्देश्य के साथ डिजाइन किए गए हैं कि एक भंडार किसी अन्य के रूप में अच्छा है, और यह एक भंडार से दूसरे में विलय हो जाता है, यह संचार का एक और रूप है। किसी भी अर्थपूर्ण मूल्य के लिए जिस पर भंडार भरोसा किया जाना चाहिए, प्रक्रिया से बाहर से लगाया जाता है, न कि सॉफ़्टवेयर द्वारा।

एक प्रकार या दूसरे का उपयोग करने के बीच वास्तविक विकल्प संगठनात्मक है - यदि आपकी परियोजना या संगठन केंद्रीकृत नियंत्रण चाहता है, तो एक डीवीसीएस एक गैर स्टार्टर है। यदि आपके डेवलपर्स को पूरे देश/दुनिया में काम करने की उम्मीद है, तो केंद्रीय भंडार के लिए सुरक्षित ब्रॉडबैंड कनेक्शन के बिना, तो डीवीसीएस शायद आपका उद्धार है। यदि आपको दोनों की ज़रूरत है, तो आप fsck'd हैं।

+0

सीवीएस, एसवीएन और विजुअलसोर्ससेफ (नाम लेकिन 3) के बीच बहुत महत्वपूर्ण अंतर हैं जिनकी उपयोगिता पर गंभीर प्रभाव पड़ता है - और ये केवल वर्कफ़्लो और/या एकीकरण समस्या नहीं हैं। – Murph

+0

मैंने उन तीनों का उपयोग किया है, और तकनीकी रूप से आप सही हैं, लेकिन एक उच्च स्तरीय परिप्रेक्ष्य से मेरा जवाब भी मान्य है। एक से अधिक डेवलपर के लिए संस्करण नियंत्रण एक संगठनात्मक उपकरण है; जब तक संगठन संगठन की जरूरतों को पूरा करता है, यह सब कुछ लंबे समय तक मायने रखता है। –

2

बाजार आईएमएचओ गिट की तुलना में सीखना आसान है। गिट के github.com में अच्छा समर्थन है।

मुझे लगता है कि आपको दोनों का उपयोग करने का प्रयास करना चाहिए और यह तय करना चाहिए कि आप सबसे अधिक उपयुक्त हैं।

+1

मर्कुरियल बाजार जितना आसान है, गिट की तुलना में अपेक्षाकृत तेज़ है और बिटबकेट पर अच्छा समर्थन है। तो आप और क्या पूछ सकते हैं? –

2

यहां लोग क्या गिट, मर्कुरियल और बाज़ार की सापेक्ष ताकत और कमजोरियों के रूप में देखते हैं?

यह एक बहुत ही खुला प्रश्न है, जो ज्वालामुखी पर सीमा है।

गिट सबसे तेज़ है, लेकिन सभी तीन पर्याप्त तेज़ हैं। बाजार सबसे लचीला है (इसमें एसवीएन भंडारों के लिए पारदर्शी रीड-राइट समर्थन है) और उपयोगकर्ता अनुभव के बारे में बहुत परवाह करता है। Mercurial बीच में कहीं है।

सभी तीन प्रणालियों में बहुत सारे प्रशंसक हैं। मैं व्यक्तिगत रूप से बाज़ार प्रशंसक हूं।

उनमें से प्रत्येक को एक दूसरे के साथ और एसवीएन और पर्सफोर्स जैसे संस्करण नियंत्रण प्रणाली के खिलाफ विचार करने पर, किन मुद्दों पर विचार किया जाना चाहिए?

पूर्व वितरित सिस्टम हैं। उत्तरार्द्ध केंद्रीकृत सिस्टम हैं। इसके अलावा, पर्सफोर्स स्वामित्व है जबकि अन्य सभी as in speech मुक्त हैं।

केंद्रीकृत बनाम विकेन्द्रीकृत अपनी श्रेणी के भीतर वर्णित किसी भी प्रणाली की तुलना में अधिक महत्वपूर्ण विकल्प है।

एसवीएन से इन वितरित संस्करण नियंत्रण प्रणालियों में से एक में माइग्रेशन की योजना बनाने में, आप किन कारकों पर विचार करेंगे?

सबसे पहले, TortoiseSVN के लिए एक अच्छा विकल्प की कमी। हालांकि बाजार अपने Tortoise variant पर काम कर रहा है, लेकिन सितंबर 2008 तक यह अभी तक नहीं है।

फिर, एक विकेन्द्रीकृत प्रणाली का उपयोग करने के बारे में प्रमुख लोगों को प्रशिक्षण देना उनके काम को प्रभावित करने जा रहा है।

अंत में, इस तरह के मुद्दे ट्रैकर, हर रात को निर्माण प्रणाली, स्वचालित परीक्षण प्रणाली, आदि

+1

रिकॉर्ड के लिए, वर्तमान पृष्ठ कहता है: "बाज़ार संस्करण 1 के बाद से।6, TortoiseBZR को आधिकारिक इंस्टॉलर में शामिल किया गया है ", ऐसा लगता है कि – PhiLho

16

InfoQ a nice comparison है के रूप में प्रणाली, के बाकी के साथ एकीकरण।

5

सूर्य ने सोलारिस कोड बेस के लिए सन टीमवेयर वीसीएस को प्रतिस्थापित करने के लिए उम्मीदवारों के रूप में git, Mercurial, और Bazaar का मूल्यांकन किया। मुझे यह बड़ा ही दिलचस्प लगा।

+3

उन मूल्यांकनों को कुछ हद तक पुराना है, नए संस्करणों में कुछ नुकसान हुए हैं। – hayalci

1

ddaa.myopenid.com ने इसे पारित करने में उल्लेख किया है, लेकिन मुझे लगता है कि यह फिर से उल्लेख करने लायक है: बाज़ार रिमोट एसवीएन रिपॉजिटरीज़ को पढ़ और लिख सकता है। इसका मतलब है कि आप बाजार को स्थानीय रूप से सबूत-अवधारणा के रूप में उपयोग कर सकते हैं जबकि शेष टीम अभी भी सबवर्सन का उपयोग कर रही है।

संपादित करें: सुंदर बहुत सारे उपकरण अब SVN के साथ बातचीत के कुछ रास्ता नहीं है, लेकिन अब मैं व्यक्तिगत अनुभव है कि git svn अच्छी तरह से काम अत्यंत। मैं महीनों के लिए इसका उपयोग कर रहा हूं, कम से कम हिचकी के साथ।

+0

गिट में भी svn में इंटरफ़ेस है, लेकिन मेरे पास नहीं है इसे अभी तक ठीक से उपयोग करने का मौका - http://utsl.gen.nz/talks/git-svn/intro.html – Cebjyre

1

आपका मुख्य मुद्दा यह होगा कि ये वितरित एससीएम वितरित किए गए हैं, और इस तरह उपयोगकर्ता की मानसिकता में कुछ बदलाव की आवश्यकता है। एक बार लोगों को इस विचार के लिए उपयोग करने के बाद तकनीकी विवरण और उपयोग पैटर्न गिर जाएंगे, लेकिन प्रारंभिक बाधा को कम मत समझें, खासकर कॉर्पोरेट सेटिंग में। याद रखें, सभी समस्याएं लोगों की समस्याएं हैं।

15

क्या लोग यहाँ कर सापेक्ष शक्तियों और Git, मर्क्युरियल, और बाज़ार की कमजोरियों के रूप में देखते हैं?

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

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

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

मेरी राय में Mercurial ताकत अपने अच्छे एमएस विंडोज समर्थन में अपने अच्छे प्रदर्शन और छोटे भंडार आकार में निहित है।

मुख्य disadvanatge मेरी राय में है कि स्थानीय शाखाएं (एकल भंडार में कई शाखाएं) अभी भी द्वितीय श्रेणी के नागरिक हैं, और अजीब और जटिल तरीके से यह टैग लागू करता है। फ़ाइल नामों के साथ जिस तरह से यह सौदा करता है वह सबोपेटिमल था (लेकिन यह माइग बदल गया है)। Mercurial ऑक्टोपस विलय (दो से अधिक माता-पिता के साथ) का समर्थन नहीं करता है।

से जो मैंने सुना है और मुख्य पढ़ा है बाज़ार लाभ यह केंद्रीकृत कार्यप्रवाह के लिए आसान समर्थन (जो भी नुकसान है, केंद्रीकृत अवधारणाओं दिखाई जहां यह नहीं करना चाहिए के साथ), पर नज़र रखने के दोनों फ़ाइलों और निर्देशिकाओं के renames हैं।

इसका मुख्य नुकसान लंबे समय तक nonlinear इतिहास के साथ बड़े भंडारों के लिए प्रदर्शन और भंडार आकार (प्रदर्शन कम से कम बड़े भंडार के लिए कम से कम सुधार) है, तथ्य यह है कि डिफ़ॉल्ट प्रतिमान प्रति भंडार एक खेत है (आप इसे साझा करने के लिए सेट कर सकते हैं डेटा, हालांकि), और केंद्रीकृत अवधारणाओं (लेकिन जो मैंने परिवर्तनों को सुना है उससे भी)।

गिट सी, खोल स्क्रिप्ट और पर्ल में लिखा गया है, और स्क्रिप्ट योग्य है; Mercurial सी (कोर, प्रदर्शन के लिए) और पायथन में लिखा है, और एक्सटेंशन के लिए एपीआई प्रदान करता है; बाजार पायथन में लिखा गया है, और एक्सटेंशन के लिए एपीआई प्रदान करता है।


एक दूसरे के साथ और SVN और लाज़िमी की तरह संस्करण नियंत्रण प्रणाली के खिलाफ उनमें से प्रत्येक पर विचार में, क्या मुद्दों पर विचार किया जाना चाहिए?

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


इन वितरित संस्करण नियंत्रण प्रणाली से एक के लिए SVN से एक प्रवास की योजना बनाने में क्या कारकों पर विचार करेंगे?

एसवीएन के साथ इनट्रैक्टिंग के लिए समर्थन करने वाले कारकों में से एक है; गिट में गिट-एसवीएन है, बाज़ार में बीजीआर-एसवीएन है, और मर्कुरियल में ह्यूसबर्सन एक्सटेंशन है।

अस्वीकरण: मैं गिट उपयोगकर्ता और छोटे समय के योगदानकर्ता हूं, और गिट मेलिंग सूची (और भाग) पर देखते हैं। मैं केवल अपने दस्तावेज़ीकरण से, Mercurial और बाज़ार को जानता हूं, आईआरसी और मेलिंग सूचियों पर विभिन्न चर्चा, और विभिन्न संस्करण नियंत्रण प्रणालियों की तुलना में ब्लॉग पोस्ट और आलेख (जिनमें से कुछ गिट विकी पर GitComparison पृष्ठ पर सूचीबद्ध हैं)।

+0

FYI - bzr-svn git-svn से कहीं अधिक सक्षम है, जिसमें यह द्विपक्षीय है: I "bzr शाखा svn: // ..." चला सकते हैं, और बाद में मेरे परिवर्तनों को svn सर्वर पर वापस विलय कर सकते हैं - जहां वे मेटाडेटा के साथ संग्रहीत किए जाएंगे अन्य बीजीआर क्लाइंट पहचानेंगे। –

+2

मैं एक एचजी देव हूं और मैं रहा हूं गिट डिज़ाइन पर थोड़ा सा दिख रहा है। मुझे यह देखकर खुशी हो रही है कि वे एक वितरित सेटिंग के लिए एकमात्र समझदार तरीके से इतिहास का इलाज करते हैं: उच्च स्तर पर वे दोनों का एक विश्वकोश ग्राफ है और निम्न स्तर पर वे दोनों संदर्भ प्रस्तुत करते हैं प्रकट करता है कि कौन सी संदर्भ फाइलें (गिट में ब्लब्स)। Mercurial एच गुमनाम शाखाओं के रूप में (जो, AFAIK गिट में मौजूद नहीं है), इसने बुक की गई शाखाएं (गिट शाखाओं की तरह बहुत अधिक है, लेकिन कोई पुश/पुल नहीं है) और इसने शाखाओं का नाम दिया है (शाखा का नाम प्रतिबद्ध में दर्ज किया गया है - वे भी इसमें नहीं हैं Git)। –

2

एक बहुत ही महत्वपूर्ण गायब बाजार में चीज सीपी है। आपके पास समान इतिहास साझा करने वाली एकाधिक फ़ाइलें नहीं हो सकती हैं, जैसा कि आपके पास एसवीएन में है, उदाहरण के लिए here और here देखें। यदि आप सीपी का उपयोग करने की योजना नहीं बनाते हैं, तो bzr svn के लिए एक महान (और उपयोग करने में बहुत आसान) प्रतिस्थापन है।

+0

यह डिज़ाइन द्वारा गायब है - सीपी को कई मामलों के निर्माण के बिना जोड़ा नहीं जा सकता है जहां एक शाखा के बीच विलय करने पर सही बात करने के लिए मुश्किल या असंभव है जहां एक प्रतिलिपि और परिवर्तन हुए और परिवर्तन के साथ एक और शाखा है लेकिन नहीं प्रति। –

+0

निश्चित रूप से, लेकिन यह कुछ पता होना चाहिए - और यह कई उपयोग मामलों के लिए एक बहुत उपयोगी सुविधा होगी (जैसे फ़ाइल को दो अलग-अलग में विभाजित करना और दोनों के लिए इतिहास को संरक्षित करना)। असल में यह एकमात्र कारण है कि मैं अभी भी कुछ परियोजनाओं के लिए विचलन का उपयोग करता हूं - जहां विलय अप्रासंगिक है लेकिन कॉपी – Davide

2

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

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

मुझे लगता है कि DVCS का उपयोग करने में मेरे अनुभव के लिए मुख्य अंतर यह है:

  1. Git सबसे जीवंत समुदाय है और यह Git
  2. GitHub वास्तव में चट्टानों के बारे में लेख को देखने के लिए आम बात है। Launchpad.net ठीक है, लेकिन गीथब
  3. की खुशी जैसी कुछ भी नहीं है गिट के लिए वर्कफ़्लो टूल की संख्या बहुत अच्छी रही है। यह पूरी जगह पर एकीकृत है। Bzr के लिए कुछ हैं लेकिन लगभग उतने ही या साथ ही बनाए रखा नहीं है।

सारांश में बीजेआर महान था जब मैं डीवीसीएस पर अपने दांत काट रहा था लेकिन अब मैं गिट और गिथब से बहुत खुश हूं।

+0

नहीं है, आपका मतलब है "अब" बहुत खुश है, क्योंकि "बहुत" खुश नहीं है, है ना? –

+0

धन्यवाद चार्ल्स! वहाँ एक फ्रायडियन पर्ची बिट :) – sh1mmer

1

लिनस टोरवाल्ड्स द्वारा गिट पर अच्छा वीडियो है। वह गिट के निर्माता हैं इसलिए यही वह प्रचार करता है लेकिन वीडियो में उन्होंने समझाया कि एससीएम वितरित किए गए हैं और वे केंद्रीकृत लोगों के बेहतर क्यों हैं। गिट की तुलना करने का एक अच्छा सौदा है (Mercurial ठीक माना जाता है) और सीवीएस/svn/perforce। वितरित एससीएम में माइग्रेशन के संबंध में दर्शकों के प्रश्न भी हैं।

मुझे यह सामग्री प्रबुद्ध पाया गया और मुझे वितरित एससीएम को बेचा गया। लेकिन लिनस के प्रयासों के बावजूद मेरी पसंद mercurial है। कारण बिटबकेट है।संगठन, मैंने इसे बेहतर (अधिक उदार) तो जिथब पाया।

मुझे यहां चेतावनी का एक शब्द कहना है: लिनस की काफी आक्रामक शैली है, मुझे लगता है कि वह मजाकिया बनना चाहता है लेकिन मैं हंस नहीं पाया। इसके अलावा वीडियो बहुत अच्छा है यदि आप एससीएम वितरित करने के लिए नए हैं और एसवीएन से आगे बढ़ने के बारे में सोचते हैं। http://wiki.python.org/moin/DvcsComparison:

http://www.youtube.com/watch?v=4XpnKHJAok8

6

तुलना पायथन डेवलपर्स द्वारा हाल ही में किए गए पर एक नजर डालें।

मर्क्युरियल साथ जाने के लिए चुनाव तीन महत्वपूर्ण कारणों के लिए किया गया था:: वे तीन महत्वपूर्ण कारणों के आधार पर मर्क्युरियल चुना

  • एक छोटे सर्वेक्षण के अनुसार, पायथन डेवलपर्स मर्क्युरियल से उपयोग करने में अधिक रुचि रखते हैं बाजार या गिट में।
  • मर्कुरियल पाइथन में लिखा गया है, जो पाइथन-देव प्रवृत्ति के साथ 'अपने स्वयं के डॉगफूड खाने' के अनुरूप है।
  • Mercurial bzr से काफी तेज़ है (यह गिट से धीमा है, हालांकि बहुत छोटा अंतर है)।
  • बाजार से एसवीएन उपयोगकर्ताओं के लिए Mercurial सीखना आसान है।

(http://www.python.org/dev/peps/pep-0374/ से)

+1

मोज़िला और सूर्य भी इसी कारण से Mercurial का उपयोग करता है। –

+2

बीजीआर भी पायथन में लिखा गया है, वास्तव में एचजी से धीमा है लेकिन तेजी से संकुचित मार्जिन द्वारा - और बाजार और मर्कुरियल दोनों के उपयोगकर्ता के रूप में, मैं "सीखने में आसान" सम्बन्ध के साथ दृढ़ता से/असहमत हूं। –

+1

वे सभी अभी भी विकसित हो रहे हैं। मैंने डीसीवीएस के साथ शुरू करने के लिए बाजार पर फैसला किया क्योंकि मैंने सोचा था कि यह सबसे आसान था (लेकिन इसमें ज्यादा नहीं) और Launchpad.net। यह काफी धीमी थी। ओएसएक्स पर गिट ठीक लगता है लेकिन खराब विंडोज़ समर्थन। चूंकि पाइथन और Google प्रोजेक्ट्स ने अब इसे अपनाया है, और टोर्टोइज एचजी के कारण, मैं Mercurial में बदल रहा हूं। मुझे लगता है कि मर्कुरियल बाजार पर एक महत्वपूर्ण द्रव्यमान प्राप्त कर रहा है और वहां होगा। और गिट अपनी खुद की चीज करेगा, हमेशा पॉज़िक्स पर ध्यान केंद्रित करेगा, इसलिए वास्तव में कभी भी प्रभावी नहीं होगा। – Nick

18

स्टीव राक्षस 3 डी परियोजना के Streeting बस (2009/09/28), जहां वह एक महान और यहां तक ​​कि हाथ comparison of Git, Mercurial and Bazaar करता है इस विषय पर एक ब्लॉग प्रविष्टि को प्रकाशित किया।

अंत में उन्हें तीनों और स्पष्ट विजेता के साथ ताकत और कमजोरियां मिलती हैं। प्लस साइड पर, वह यह तय करने में आपकी सहायता के लिए एक महान टेबल देता है कि किसके साथ जाना है।

alt text

इसकी एक छोटी पढ़ा और मैं अत्यधिक यह सलाह देते हैं।

+0

बाज़ार सहज नहीं है)) – gavenkoa

+0

gavenkoa: क्यों? – Kedare

+0

@gavenkoa, बाज़ार एसवीएन से आने वाले लोगों के लिए सहज है। यदि आप गिट से आ रहे हैं, तो आपके पास एक मानसिक मॉडल है जो बाजार के आधार पर है लेकिन बहुत ही इंटरफ़ेस से बहुत दूर है। (... अंडरपिनिंग और इंटरफेस के बीच अमूर्तता की इतनी मोटी परत होने से बीजेआर के लिए एसवीएन मॉडल से परिचित लोगों के अनुकूल होना संभव हो जाता है)। –

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