स्वतंत्र डेवलपर्स के लिए संस्करण नियंत्रण?


60

क्या आपको लगता है कि यदि आप एक स्वतंत्र डेवलपर हैं, तो संस्करण नियंत्रण का उपयोग करना उचित है, और यदि हां, तो क्यों? क्या आप रिपॉजिटरी को अपने कंप्यूटर, या कहीं और रखते हैं, जहां यह बैकअप के रूप में काम कर सकता है?


54
मैं एक फार्मासिस्ट से पूछना पसंद करूंगा: "क्या मुझे एक संगठित तरीके से दवाओं को स्टोर करना चाहिए या बस उन सभी को एक दराज में फेंक देना चाहिए? क्या यह प्रयास के लायक है?"
एरिक

23
बस सॉफ्टवेयर के इस भयानक टुकड़े को बनाने के लिए एक सप्ताह के लिए वास्तव में कड़ी मेहनत करने की कल्पना करें। फिर इसे हटा दें। तुम कैसा महसूस करोगे? यह सिर्फ भंडारण नहीं है। जब पिछले सप्ताह काम किया गया कुछ टूट गया है, तो आप देख सकते हैं और देख सकते हैं कि क्या बदल गया है और आमतौर पर आप क्या तोड़ते हैं। मैं अभी भी 'प्रोफ़ेशनल' डेवलपर्स को बैकअप001 और backup_backup001 फ़ोल्डरों के साथ उनके स्रोत के साथ मिला हुआ देखता हूँ। जब आप अभी भी युवा हैं, तो अच्छी आदतें बनाएँ।
एरिक

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

जवाबों:


61

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

  1. आप स्थानीय रूप से प्रतिबद्ध हैं : आपका प्रोजेक्ट डीआईआर पूर्ण इतिहास के साथ आपका रेपो है। इसलिए आपके पास सर्वर नहीं है, आप सीधे अपने रेपो में काम करते हैं, और आपके पास एक ही कंप्यूटर में कई रिपोज हो सकते हैं। एक लैपटॉप का उपयोग करना जो आप अपनी चीजों पर काम करना जारी रखने के लिए कभी-कभी खोलते हैं? महान! आपको एक सर्वर सेटअप करने की आवश्यकता नहीं है और यदि आपको बाद में एक की आवश्यकता है, तो यह आसान है और आप रिपॉजिटरी के बीच "पुश" और "पुल" परिवर्तन कर सकते हैं।
  2. यह प्रयोग को आसान बनाने के लिए किया गया है : अक्सर आपको प्रदूषण फैलाने वाले कोड के बिना किसी विशेषता के बारे में विचार करने की आवश्यकता होती है। एसवीएन और सीवीएस के साथ आप पहले से ही ब्रांचिंग सिस्टम का उपयोग कर सकते हैं और शाखा को डिच कर सकते हैं यदि यह सुविधा उतनी अच्छी नहीं है जितनी आप चाहते थे। लेकिन अगर आप ट्रंक संस्करण के साथ फीचर को मर्ज करना चाहते हैं, तो आपको आश्चर्य को ठीक करने में बहुत मुश्किल होगी। Git, Mercurial और Bazaar (कम से कम) विलय और शाखाओं को वास्तव में आसान बनाता है। आप केवल एक रेपो की नक़ल भी कर सकते हैं, उस पर कुछ समय काम कर सकते हैं, फिर भी प्रतिबद्ध हो सकते हैं और उसे मार सकते हैं या यदि आप चाहें तो मुख्य रेपो में अपने बदलावों को आगे बढ़ा सकते हैं।
  3. संगठन की लचीलेपन : जैसा कि पहले बताया गया है, जैसा कि आपके पास रिपॉज है जिसे आप आवश्यकतानुसार व्यवस्थित करते हैं, अकेले शुरू करना आसान है और अन्य लोगों को अपने संगठन को बदलकर आपके साथ काम करने की अनुमति देता है। कोई संगठन नहीं लगाया गया है, इसलिए आपको इसे बस सेट करना होगा और वॉइलिया करना होगा। मैं अक्सर अपने स्वयं के कंप्यूटर (लैपटॉप / डेस्कटॉप / सर्वर) के बीच परिवर्तन को धक्का / खींचता हूं और मैं अभी भी अपने देवों पर अकेला हूं। मैं मर्क्यूरियल का उपयोग करता हूं और जो मुझे मेरे काम को डुप्लिकेट करने में मदद करता है, लेकिन उन विशेषताओं पर भी काम करता है जिनके बारे में मैंने अपने लैपटॉप पर सोचा था, फिर अपने डेस्कटॉप पर अन्य सुविधाओं पर काम करना जारी रखें, फिर अपने डेस्कटॉप या सर्वर पर अपने लैपटॉप में बदलाव करें और पूरे डेस्कटॉप को मर्ज करें लैपटॉप और इसे (बैकअप और भविष्य के टीम वर्क रेपो के रूप में) मेरे सर्वर पर डालें।
  4. यह बैकअप सेट करने में मदद करता है : यदि आप एक केंद्रीय रेपो सेटअप करते हैं (GitHub पर यदि यह सार्वजनिक है, या BitBucket पर एक निजी रेपो में) तो आप आसानी से एक स्क्रिप्ट लिख सकते हैं जिसे हर बार कंप्यूटर बूट होने पर निष्पादित किया जाएगा, और फिर कहा स्क्रिप्ट पर पास अपने दोस्तों के लिए ताकि यह नियमित रूप से आपके काम का स्वचालित बैकअप बनाए। यह वही है जो मैं कर रहा हूं अब मुझे यकीन है कि यह मेरा काम खोना आसान नहीं होगा।

वास्तव में, वर्तमान में, आपके पास किसी भी परियोजना के लिए नियंत्रण स्रोत उपकरण का उपयोग नहीं करने का कोई बहाना नहीं है। क्योंकि वे आपकी आवश्यकताओं से पहले से अधिक शक्तिशाली और लचीले हैं।


6
वहाँ हमेशा GitHub है
हेजमैज

8
या अगर आप Mercurial का उपयोग कर रहे हैं तो bitbucket.org
टेरेंस पोंस

7
ड्रॉपबॉक्स पर एक स्थानीय फाइल सिस्टम रेपो के साथ मर्क्यूरियल एक एकल देव के लिए वास्तव में अच्छा काम करता है।
पीटर ब्रीड

1
@ गिलियूम: एक एकल विकासक डीवीसीएस के "वितरित" पहलू का उपयोग कर सकता है। मैं करता हूँ। उदाहरण के लिए, मैं कंप्यूटर A पर काम कर सकता हूं, अपने usb कुंजी पर अपने काम को आगे बढ़ा सकता हूं, और फिर कंप्यूटर पर इस usb कुंजी से खींच सकता
हूं

1
@ गिआल्यूम "वितरित" एक तकनीकी पहलू है, न कि एक संगठनात्मक। आप एक केंद्रीकृत कांस्ट्रोल सोर्स सिस्टम का उपयोग कर सकते हैं, जिसमें इंटीग्रेटर्स वाला संगठन केवल कमिटेड कोड को मान्य करने की अनुमति देता है। यह संभव है, लेकिन उपकरण के केंद्रीकृत प्रकृति के कारण सेटअप करना कठिन है। लेकिन यह अभी भी एक ऑर्थोगोनल समस्या है।

34

स्रोत कोड नियंत्रण स्वतंत्र डेवलपर्स के लिए पूरी तरह से बेकार है, क्योंकि जैसा कि हम सभी जानते हैं:

  • स्वतंत्र डेवलपर्स कभी गलती नहीं करते हैं
  • स्वतंत्र डेवलपर्स उन संशोधनों पर कभी नहीं जाते हैं जो काम नहीं करते हैं
  • स्वतंत्र डेवलपर्स के पास कभी भी एक से अधिक संस्करण नहीं होते हैं, इसलिए उनका शाखाओं के लिए कोई उपयोग नहीं होता है
  • स्वतंत्र डेवलपर्स ने कभी भी इस बात की परवाह नहीं की कि वे कल या पिछले सप्ताह क्या बदल गए हैं
  • स्वतंत्र डेवलपर्स को कभी भी बैकअप की आवश्यकता नहीं होती है

मुझे "आश्रित डेवलपर" कहें: मेरे डेस्कटॉप, लैपटॉप, USB बैकअप ड्राइव, और bitbucket.org के बीच आसानी से मरकरी रिपॉजिटरी क्लोन। मैं आश्रित हो गया हूं, और मुझे यह पसंद है!


6
क्या यह उत्तर व्यंग्यात्मक है?

4
@ कर्टनेल: बेहद!
स्टीवन ए। लोव

1
Kewlio, बस जाँच।

21

क्यों नहीं?

मैं एक एकल डेवलपर हूं और मैं अपने व्यक्तिगत प्रोजेक्ट्स के लिए बिटबकेट और मर्क्यूरियल का उपयोग करता हूं। अपने कोड को वापस करने और कांटा करने की क्षमता होने से पास होने के लिए बहुत अच्छा है।


8
BitBucket के लिए +1 - वे मुफ्त में असीमित निजी रिपॉजिटरी प्रदान करते हैं।
जॉन सागर

2
नि: शुल्क निजी रिपॉजिटरी यही कारण है कि मैं GitHub पर BitBucket का उपयोग करता हूं।
टेरेंस पोंस

4
फ्री प्राइवेट रेपो ?? आपने मुझे git से hg में बदल दिया होगा।
गौथियर

@Gauthier, yep, BitBucket के पास मुफ्त में निजी प्रतिनिधि हैं। मुझे यकीन नहीं है कि अगर वे असीमित हैं।
टेरेंस पोंस

1
आप अभी भी बिटबकेट के साथ गिट का उपयोग कर सकते हैं। वास्तव में ssh कुंजी सहित github से सीधे आयात। बस चाल चली लेकिन अभी भी गिट का उपयोग करें (मुझे यह बेहतर पसंद है!)
डैनियल कैसरली

1

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


1

हाँ। यह बहुत उपयोगी है। मेरे मित्र मैट गैलाघेर ने इस उत्कृष्ट लेख को कुछ ही दिन पहले अपने "कोको विद लव" आईओएस / मैका विकास ब्लॉग पर पोस्ट किया था।

लेख Mac & Git केंद्रित है, लेकिन यह मूल बातें शामिल करता है।

आपको निम्नलिखित StackExchange प्रश्न (और उनके उत्तर) में रुचि हो सकती है।


1

वर्थ ?? जरूर! यदि आप स्रोत नियंत्रण का उपयोग नहीं करते हैं, तो आप स्रोतों पर नियंत्रण नहीं करते हैं, और यह बुरा है। आप अलग नहीं कर सकते हैं आप वापस नहीं लौट सकते हैं, आप परिवर्तनों को ट्रैक नहीं कर सकते हैं - आप अपने द्वारा दर्ज किए गए डमी बग का पता लगाने के लिए घंटों प्रयास करेंगे। कुछ बैकअप सर्वर पर इसे रखना बेहतर है, लेकिन आप अपना कंप्यूटर भी ले सकते हैं और किसी भी बैकअप पद्धति का उपयोग कर सकते हैं जो आपको उपयुक्त लगता है।


2
मैं वास्तव में स्रोत नियंत्रण का उपयोग करता हूं, लेकिन मैं ओवर-इंजीनियरिंग जैसी चीजों को भी अपनाता हूं और उन चीजों को अपनाता हूं जो ओवरकिल हैं। मैं इस काम के लिए अच्छी तरह से जाना जाता हूं। फिर कभी, मुझे नहीं लगता कि कोई भी प्रोग्रामर जहाँ मैं काम करता हूँ, मेरे साथ कहीं और प्रोग्रामर के रूप में काम किया है, और हम में से अधिकांश अभी भी हाई स्कूल में हैं।
वेदोसिटी

1

स्रोत नियंत्रण का बिल्कुल उपयोग करें। फिर एक बिल्ड सर्वर सेट करें और अपनी बिल्ड और परीक्षण प्रक्रियाओं को स्वचालित करें। ट्रिगर आपके केंद्रीय रेपो के स्रोत से बनाता है। मैं तीन साल से अपने आप से इस तरह से काम कर रहा हूं और यह अद्भुत है।


0

हाँ।

यहां तक ​​कि एकल डेवलपर्स को कभी-कभी कुछ पिछले संशोधन से अपने कोड की स्थिति को देखने की आवश्यकता होती है। और यह हमेशा एक अच्छा विचार है कि सब कुछ महत्वपूर्ण बैकअप के लिए, और यह सभी लोगों पर लागू होता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.