2009-11-19 9 views
5

मैं एक प्रोजेक्ट शुरू करने जा रहा हूं और इसे होस्ट करने के लिए Google Code का उपयोग करने की सोच रहा था। यह संस्करण नियंत्रण के लिए Mercurial या एसवीएन का उपयोग करने का विकल्प देता है। मैंने कभी भी वीसीएस का उपयोग नहीं किया है, और यह जानना चाहूंगा कि किसके साथ काम करना आसान है।मैं किस कोड को Google Code के साथ उपयोग करना चाहिए?

इस परियोजना में दो मुख्य प्रोग्रामर शामिल हैं, लेकिन कुछ अन्य छोटी मात्रा में योगदान दे सकते हैं। यह ज्यादातर अजगर में है और हम Emacs प्राथमिक संपादक के रूप में उपयोग करते हैं। हम दोनों विंडोज ऑपरेटिंग सिस्टम का उपयोग कर रहे हैं।

उत्तर

12

Mercurial का उपयोग करें।

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

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

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

संपादित करें: Mercurial को आपकी परियोजना में प्रत्येक फ़ोल्डर में .svn फ़ोल्डर को थप्पड़ मारने की आवश्यकता महसूस नहीं होती है। वे चीजें बदसूरत हैं (और विंडोज़ पर डिफ़ॉल्ट रूप से छिपी नहीं हैं, जैसे वे * निक्स सिस्टम पर होंगी)। आपकी परियोजना की जड़ पर केवल एक .hg फ़ोल्डर होगा, जो बहुत साफ है।

संपादित करें: Mercurial का उपयोग करने का एक और कारण: hg bisect। 2 घंटों के बजाय 10 मिनट में एक बग को ट्रैक करना क्योंकि आप सटीक संशोधन ढूंढने में सक्षम थे क्योंकि यह भयानक है। ऐसा लगता है कि एक पर्ल svn-bisect उपकरण है लेकिन यह मूल में नहीं है, और संशोधन के बीच अद्यतन करने में एसवीएन की धीमी गति से यह काफी लंबी प्रक्रिया होगी।

+0

Mercurial मेरे लिए अच्छा लगता है। मै उसे करने की एक कोशिश तो करूंगा। – Nikwin

+0

मुझे प्यार है कि मैं Google कोड पर अन्य Mercurial परियोजनाओं के व्यक्तिगत क्लोन बना सकता हूं। –

1

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

मर्कुरियल गिट की तरह विकेन्द्रीकृत है, लेकिन मैं 2 प्रोग्रामर टीम के लिए इतना ज्यादा चिंता नहीं करता, जो कभी भी स्रोत नियंत्रण के संपर्क में नहीं आया है।

या तो चुनें और इसके बारे में भूल जाओ।

-1

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

एचटीएच!

+4

एक मर्कुरियल बुक और टोर्टोइज एचजी है और इसकी लोकप्रिय ... – Murph

+1

ठीक है ... मैं सिर्फ यह कहना चाहता था कि आप एसवीएन के साथ बेहतर हैं, अगर आप वीसीएस को स्क्रैच से शुरू कर रहे हैं। यदि आप एक नौसिखिया हैं तो इसमें निश्चित रूप से बेहतर टूल और दस्तावेज उपलब्ध हैं ... –

1

सरल उत्तर एसवीएन है - टोर्टोइज एसवीएन और टोर्टोइज एचजी को आग लगाना और आप देखेंगे कि पूर्व सौंदर्यशास्त्र और प्रयोज्यता के मामले में पूर्व से कुछ दूरी आगे है हालांकि मुझे नहीं लगता कि सरल उत्तर पर्याप्त है ये मामला।

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

डीवीसीएस के साथ मेरी मुख्य चिंता यह है कि मैं अलग-अलग कारणों से एक अलग सर्वर (या कम से कम आपके डिब्बे बॉक्स पर नहीं भंडार के बिना) अपूर्ण होने के रूप में संस्करण नियंत्रण को मानता हूं। हालांकि इस मामले में आपके पास केंद्रीय भंडार होगा ... ताकि तर्क कम मान्य हो।

मेरे पास एक द्वितीयक मुद्दा है जो मुझे लगता है कि किसी को जल्द से जल्द किसी की परियोजनाओं में निरंतर एकीकरण सर्वर (निर्माण और परीक्षण) शुरू करने का लक्ष्य रखना चाहिए, लेकिन फिर ऐसा कुछ है जो साझा/केंद्रीय के साथ डीवीसीएस के साथ किया जा सकता है भंडार।

मुझे अभी भी लगता SVN यह सौंपना एक बहुत है, हमारा काम भंडार है और निकट भविष्य (ध्यान दें कि मैं एक है कि तय करने के लिए हो जाता है हूँ!) के लिए SVN रहेगा, लेकिन समान रूप से मैं Mercurial के साथ मेरी निजी सामग्री कर रही है और सीखने के रूप में सीखना।

+1

यय, कोई टिप्पणी नहीं के साथ डाउनवोट - हमेशा सहायक ... इसके लायक होने के लिए, यह लगभग दो साल पहले लिखा गया था, यह तब सही था - TortoiseHg अब काफी बेहतर है। – Murph

+0

दो और डाउनवॉट्स * स्पष्टीकरण के बिना * और, मुझे संदेह है कि बिना किसी विचार के – Murph

1

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

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

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