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 पर सूचीबद्ध हैं) से जानता हूं ।