2010-07-06 10 views
41

संभावित डुप्लिकेट:
For home projects, can Mercurial or Git (or other DVCS) provide more advantages over Subversion?
What are the relative strengths and weaknesses of Git, Mercurial, and Bazaar?Git बनाम मर्क्युरियल बनाम SVN

इन स्रोत नियंत्रण प्रणाली के बीच मतभेद के कुछ क्या हैं? एक छोटे से 2 लोगों के लिए सबसे अच्छा कौन सा प्रोजेक्ट है?

+1

देखें [घर परियोजनाओं के लिए, क्या मर्कुरियल या गिट (या अन्य डीवीसीएस) सबवर्सन पर अधिक फायदे प्रदान कर सकते हैं?] (Http://stackoverflow.com/questions/1218471/for-home-projects-can-mercurial-or- गिट-या-अन्य-डीवीसीएस-प्रदान-अधिक-फायदे-ओ) –

+0

देखें http://stackoverflow.com/questions/161541/svn-vs-git/2549128#2549128 – VonC

+0

http://stackoverflow.com/questions/ 885213/इन-शॉर्ट-व्हाट-द-फायदे-ऑफ-गिट-एंड-मर्कुरियल-ओवर-सबवर्जन http://stackoverflow.com/questions/871/why-is-git-better-than-subversion – joeynelson

उत्तर

46

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

गिट और मर्कुरियल के पास एक वितरित मॉडल है। इसका मतलब है कि प्रत्येक कंप्यूटर पर एक भंडार होता है और आमतौर पर एक "आधिकारिक" भंडार होता है जो लोग अपने परिवर्तनों को करने और खींचने का विकल्प चुनते हैं।

गिट और मर्कुरियल बेहद समान हैं। मैं Mercurial पसंद करते हैं क्योंकि मुझे उपयोग करने के लिए यह बहुत आसान लगता है। एक 2 व्यक्ति टीम के लिए मैं Mercurial की सिफारिश करेंगे, लेकिन यह सिर्फ मेरी राय है। यदि आप संस्करण नियंत्रण से परिचित नहीं हैं तो आपको अभी भी किसी भी विकल्प का उपयोग करने के लिए अपना समय बिताना होगा, लेकिन Mercurial मेरे लिए सबसे आसान लग रहा था।

एक Mercurial भंडार शुरू करने के लिए आपको बस उस निर्देशिका में एक खोल और सीडी खोलना है जिसमें आप संस्करण नियंत्रण रखना चाहते हैं, और hg init टाइप करें। वह भंडार बनाता है। फ़ोल्डर में सब कुछ को भंडार में जोड़ने के लिए, hg add . टाइप करें। यहाँ कुछ अन्य विभिन्न आदेशों हैं:

  • स्थानीय परिवर्तन के लिए प्रतिबद्ध करने के लिए: hg commit -m "Descriptions of changes"
  • सर्वर से नवीनतम संस्करण को खींच करने के लिए: hg pull
  • स्थानीय परिवर्तन पुश करने के लिए: hg push
+7

यदि यह पहले से ही लिंक किए गए डुप्लिकेट (प्रश्न में सूचीबद्ध) में से किसी एक में शामिल नहीं किया गया है, तो आपको उनमें से एक पर एक उत्तर पोस्ट करना चाहिए। –

+1

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

+0

यदि आपको Mercurial और git के बीच चयन करना है। गिट के साथ जाओ। मैं यह नहीं कह रहा कि यह बेहतर है। लेकिन यह आज आमतौर पर इस्तेमाल किया जाता है। Mercurial की तुलना में गिट (Github, Stahs, Gitlab, आईडीई समर्थन, आदि) के आसपास एक बहुत बड़ा पारिस्थितिकी तंत्र है। इसके अलावा अधिकांश डेवलपर्स को गिट स्थापित किया जाएगा और इसका उपयोग कैसे किया जाए। – Gellweiler

15

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

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

कुछ लोगों के लिए गिट या मर्कुरियल स्थापित करना एक ही सर्वर पर एसएसएच पहुंच प्राप्त करना और कुछ पैकेज स्थापित करना शामिल है। जबकि एसवीएन के लिए, जहां तक ​​मुझे पता है कि आपको अपाचे के तहत एक वास्तविक सर्वर एप्लिकेशन को कॉन्फ़िगर करने और चलाने की आवश्यकता है, और उसके बाद इसे सुरक्षित करने के लिए SSL प्रमाणपत्र और .htaccess आदि के साथ गड़बड़ करना आवश्यक है।

मेरी सभी निजी परियोजनाओं के लिए, मैं Mercurial या Git के साथ जाता हूं। अगर मैं एक बड़ी टीम के साथ काम कर रहा था, तो शायद मैं सबवर्सन जाऊंगा क्योंकि आपको केंद्रीकृत प्रमाणीकरण और होस्टिंग मिलता है। लेकिन दो लोगों के लिए, मैं वितरित लोगों में से एक चुनूंगा, क्योंकि तब आपको केंद्रीकृत प्रमाणीकरण और होस्टिंग के साथ गड़बड़ नहीं करना पड़ेगा। :-)

+2

आप वितरित संस्करण नियंत्रण प्रणाली का इलाज कर सकते हैं जैसे कि वे केंद्रीकृत थे, अगर यह एक बड़ी टीम के वर्कफ़्लो के अनुरूप है। –

+1

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

+1

गिट अब पीजीपी हस्ताक्षरित कामों का समर्थन करता है जो कि फोर्ज करना असंभव है, अगर आप ऑडिटिंग से चिंतित हैं तो गैर-हस्ताक्षरित कामों से इनकार कर दें। और प्रमाणीकरण, आप बात कर रहे हैं जैसे आप एक ही एसएसएच कुंजी का उपयोग करेंगे? यह सिर्फ बेवकूफ और पूरी तरह से असुरक्षित है। – kyrias

6

गिट और मर्कुरियल काफी समान हैं (लेकिन सावधानी बरतने के लिए काफी अलग हैं)।दूसरी ओर एसवीएन काफी अलग है: पहले दो वितरित वीसीएस हैं, इसलिए उन्हें केंद्रीय सर्वर की आवश्यकता नहीं है, जबकि एसवीएन करता है। आम तौर पर कई परियोजनाएं वितरित प्रणालियों की ओर बढ़ रही हैं।

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

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