Git, Mercurial और Bazaar की सापेक्ष ताकत और कमजोरियां क्या हैं? [बन्द है]


137

Git, Mercurial और Bazaar की रिश्तेदार ताकत और कमजोरियों के रूप में यहां के लोग क्या देखते हैं?

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

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


1
Mercurial और Git के बीच विंडोज की विशिष्ट तुलना के लिए यह प्रश्न देखें: stackoverflow.com/questions/2550091/…
अलेक्जेंड्रुल

BTW, मैं विभिन्न DVCS प्रणालियों के उपयोग का प्रतिशत देखना चाहूंगा।
सर्गियोल

जवाबों:


145

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

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

दोनों में एसवीएन एकीकरण का कुछ रूप उपलब्ध है; हालाँकि, bzr-svn git-svn की तुलना में काफी अधिक सक्षम है, मोटे तौर पर उस उद्देश्य के लिए शुरू किए गए बैकेंड प्रारूप संशोधन के कारण। [अपडेट, २०१४ के अनुसार: थर्ड-पार्टी कमर्शियल प्रोडक्ट सबजीत एसवीएन और गिट के बीच एक द्विदिश इंटरफेस प्रदान करता है जो कि बीआरआर-एसवीएन के लिए निष्ठा में तुलनीय है, और काफी अधिक पॉलिश है; जब बजट और लाइसेंस की अड़चन आती है तो मैं git-svn के उस उपयोग पर जोर देता हूं ।

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

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

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

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


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

19

ओगरे 3 डी परियोजना के स्टीव स्ट्रीटिंग ने सिर्फ (9/28-2009) को इस विषय पर एक ब्लॉग प्रविष्टि प्रकाशित की जहां वह एक महान और यहां तक ​​कि Git, Mercurial और Bazaar की तुलना भी सौंपता है ।

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

वैकल्पिक शब्द

इसका संक्षिप्त पाठ और मैं इसकी अत्यधिक अनुशंसा करता हूं।


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

2
@CharlesDuffy Mercurial में आज्ञाओं के लिए सहज नाम भी हैं और मृत नहीं (बाज़ार का विकास 2 साल पहले ठप हो गया था और Canonical इसे अस्वीकार कर देते हैं ,ea Git + github win DVCS गेम )। मैं git नामकरण स्कीमा को कभी नहीं समझता, इसलिए व्यक्तिगत रूप से HG को प्राथमिकता देते हैं।
गीट

@gavenkoa, bzr के प्रमुख कमांड के नाम SVN से मेल खाते हैं, इसलिए फिर से, मैं नहीं देखता कि संभवतः उनके बारे में (एक SVN उपयोगकर्ता के लिए) अनजाने में क्या हो सकता है। हां, निश्चित रूप से, विकास मृत है। मैं यह तर्क नहीं दे रहा हूं कि bzr उपयोग के लिए व्यावहारिक है - केवल यह कि विशिष्ट आलोचना की गई थी-आधार।
चार्ल्स डफी

1
@gavenkoa, ... मुझे सॉफ़्टवेयर के डेवलपर्स / मालिकों (इसके आधार पर सार्वजनिक रूप से प्रलेखित) के खिलाफ एक बड़ी शिकायत होने के बावजूद, BitKeeper के पहलुओं का बचाव करने के लिए भी जाना जाता है ... हालांकि लैरी ने मुझे एक बार फोन किया था कि उनका अंत क्या है हुआ, और मैं अनुदान दूंगा कि मैं अब दोनों पक्षों को समझता हूं)। सिर्फ इसलिए कि मैं SCM का बचाव करता हूं, इसका मतलब यह नहीं है कि मैं वास्तव में लोगों को इसका इस्तेमाल करने की सलाह देता हूं। :)
चार्ल्स डफी

15

Git, Mercurial और Bazaar की रिश्तेदार ताकत और कमजोरियों के रूप में यहां के लोग क्या देखते हैं?

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

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

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

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

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

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

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

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


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

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


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

जिन कारकों पर आप विचार करना चाहते हैं, उनमें से एक एसवीएन के साथ इनट्रैक्टिंग के लिए समर्थन है; Git में git-svn है, Bazaar में bzr-svn है, और Mercurial में hgsubversion एक्सटेंशन है।

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


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

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


7

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

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


10
मर्क्यूरियल वास्तव में Git के बराबर है। प्रदर्शन कोई बड़ा अंतर नहीं है। लेकिन बाजार, मर्क्यूरियल और गिट की तुलना में वाया धीमी है।
जोशुआ अंश जोगी

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

6

: तुलना पायथन डेवलपर्स द्वारा हाल ही में किए गए पर एक नजर डालें http://wiki.python.org/moin/DvcsComparison । उन्होंने तीन महत्वपूर्ण कारणों के आधार पर मर्क्यूरियल को चुना:

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

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

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


1
मोज़िला और सूर्य भी इसी कारण से मर्क्यूरियल का उपयोग करते हैं।
जोशुआ अंश जोगी

2
bzr को Python में भी लिखा जाता है, वास्तव में hg की तुलना में धीमा होता है, लेकिन जल्दी संकुचित होने वाले मार्जिन से - और बाज़ार और Mercurial दोनों के उपयोगकर्ता के रूप में, मैं / जोर से / आसानी से असहमत "मुखरता" सीखता हूं।
चार्ल्स डफी

1
वे सभी अभी भी विकसित हो रहे हैं। मैंने बाज़ार को DCVS के साथ शुरू करने का फैसला किया क्योंकि मुझे लगा कि यह सबसे आसान है (लेकिन इसमें बहुत ज्यादा नहीं है) और Launchpad.net। यह काफी धीमा था। OSX पर Git ठीक लेकिन खराब Windows समर्थन लगता है। चूंकि पायथन और Google परियोजनाओं ने अब इसे अपना लिया है, और कछुआ के कारण, मैं मर्क्यूरियल को स्वैप कर रहा हूं। मुझे लगता है कि मर्क्यूरियल बाजार पर एक महत्वपूर्ण द्रव्यमान प्राप्त कर रहा है और वहां होगा। और Git अपना काम खुद करेगा, हमेशा Posix पर ध्यान केंद्रित किया जाएगा, इसलिए यह वास्तव में कभी भी प्रभावी नहीं होगा।
निक

5

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


3
वे मूल्यांकन कुछ पुराने हैं, नए संस्करणों ने वहां बताए गए कुछ नुकसानों को बदल दिया है।
हयालसी

2

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


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

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

2

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

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

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

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

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


आपका मतलब "अब" बहुत खुश है, जैसा कि "बहुत खुश नहीं" के विपरीत, है ना?
चार्ल्स डफी

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

1

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

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


तो, शायद एक मेटा-प्रश्न: ऐसे कौन से प्रश्न हैं, जिन्हें पूछा जाना चाहिए और जिन कारकों पर विचार करना चाहिए?
जॉर्डन डेआ-मैटसन

1

बाज़ार IMHO के लिए git से सीखना आसान है। Git का github.com में अच्छा समर्थन है।

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


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

1

Git, Mercurial और Bazaar की रिश्तेदार ताकत और कमजोरियों के रूप में यहां के लोग क्या देखते हैं?

यह एक बहुत ही खुला प्रश्न है, जो फ्लेमबैट पर आधारित है।

गिट सबसे तेज है, लेकिन तीनों काफी तेज हैं। बाजार सबसे अधिक लचीला है (इसमें SVN रिपॉजिटरी के लिए पारदर्शी रीड-राइट सपोर्ट है) और यूजर एक्सपीरियंस के बारे में बहुत ध्यान रखता है। मर्क्यूरियल कहीं बीच में है।

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

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

पूर्व वितरित सिस्टम हैं। बाद वाले केंद्रीकृत सिस्टम हैं। इसके अलावा, Perforce स्वामित्व है, जबकि अन्य सभी भाषण में स्वतंत्र हैं ।

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

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

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

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

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


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

1

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


1

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

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


git का svn में भी इंटरफ़ेस है, लेकिन मुझे अभी तक इसे ठीक से इस्तेमाल करने का मौका नहीं मिला है - utsl.gen.nz/talks/git-svn/intro.html
Cebjyre

1

लिनस टोरवाल्ड्स द्वारा गिट पर अच्छा वीडियो है। वह गिट के निर्माता हैं इसलिए यह वही है जो उन्हें बढ़ावा देता है लेकिन वीडियो में वे बताते हैं कि वितरित एससीएम क्या हैं और वे बेहतर क्यों हैं, फिर केंद्रीकृत हैं। Git (मर्क्यूरियल को OK माना जाता है) और cvs / svn / perforce की तुलना में एक अच्छा सौदा है। वितरित एससीएम में प्रवास के संबंध में भी श्रोताओं के प्रश्न हैं।

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

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

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


0

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

केंद्रीकृत वीसीएस सिस्टम इस इरादे से तैयार किए गए हैं कि वन ट्रू सोर्स है जो धन्य है, और इसलिए अच्छा है। सभी डेवलपर उस स्रोत से काम (चेकआउट) करते हैं, और फिर अपने परिवर्तनों को जोड़ते हैं (कमिट करते हैं), जो फिर इसी तरह धन्य हो जाते हैं। CVS, तोड़फोड़, ClearCase, Perforce, VisualSourceSafe और अन्य सभी CVCSes के बीच एकमात्र वास्तविक अंतर वर्कफ़्लो, प्रदर्शन और एकीकरण है जो प्रत्येक उत्पाद प्रदान करता है।

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

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


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

मैंने उन तीनों का उपयोग किया है, और तकनीकी रूप से आप सही हैं, लेकिन उच्च स्तर के दृष्टिकोण से मेरा उत्तर भी मान्य है। एक से अधिक डेवलपर के लिए संस्करण नियंत्रण एक संगठनात्मक उपकरण है; जब तक उपकरण संगठन की जरूरतों को पूरा करता है, तब तक यही सब लंबे समय में मायने रखता है।
क्रेग ट्रेडर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.