वर्चुअलाइज कंट्रोल कमिटमेंट हिस्ट्री बनाम रिफैक्टिंग एंड डॉक्यूमेंटेशन


11

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

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

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

मैं समझता हूं कि किसी भी मुख्य स्रोत अपग्रेड को करने की आवश्यकता के बिना ग्राहकों को सहायता प्रदान करने की आवश्यकता के कारण किसी भी शिप किए गए स्रोत कोड को संरक्षित किया जाना चाहिए। लेकिन इससे अलग, क्या सोर्स कोड के इतिहास को बनाए रखने में कोई मूल्य है?

क्या स्रोत कोड प्रतिबद्ध इतिहास टीम के सदस्यों के बीच संचार में कोई भूमिका निभाता है? क्या होगा यदि हम प्रतिबद्ध इतिहास को खत्म कर देते हैं, लेकिन इसके बजाय संचार के लिए "स्रोत कोड" + "इकाई परीक्षण कोड" पर भरोसा करते हैं?

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


3
आप किस सोर्स कोड सिस्टम का उपयोग करते हैं, इस पर निर्भर करते हुए कि वर्जन हिस्ट्री को फाइल मूव्स और व्हाट्सएप के साथ भी संरक्षित किया जाएगा। हटाई गई फ़ाइलों के लिए इतिहास अभी भी सुलभ होना चाहिए। और अंत में जो मायने रखता है वह अंतिम परिणाम का इतिहास है। कक्षा X, Y और Z वर्गों का एक संयोजन हो सकता है, लेकिन इतिहास आपको बताएगा कि (विशेषकर यदि आपके पास अच्छी चेकइन टिप्पणियाँ हैं), और आप अभी भी मूल में वापस आ सकते हैं। क्या मुझसे कोई चूक हो रही है?
एडम लेअर

1
These changes often lead to the loss of the original commit history of a few files."Git blame" जैसे उदाहरण देखें - कुछ भी नहीं खो जाता है। कभी-कभी इसे खोजना थोड़ा कठिन हो सकता है, लेकिन यह हमेशा होता है।
मातरिनस

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

जवाबों:


5

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

जब तक नवीनतम संस्करण सभी सॉफ़्टवेयर आवश्यकताओं को पूरा करना जारी रखता है, क्या हमें वास्तव में स्रोत कोड के इतिहास को संरक्षित करने की आवश्यकता है?

पर्याप्त रूप से जटिल सॉफ़्टवेयर में शायद ही कभी सभी आवश्यकताओं को लागू किया गया है और सभी कीड़े कारणों की एक भीड़ के लिए तय किए गए हैं, इसलिए मुझे लगता है कि आपका दावा यहां आशावादी है।

मान लीजिए आप अपने प्रोग्राम के वर्जन 7.8 पर हैं। लेकिन आप इस क्षेत्र में, 1.6, 2.2, 2.8 और इसी तरह के 12 विभिन्न सक्रिय संस्करण का समर्थन कर रहे हैं। इनमें से प्रत्येक को विभिन्न कारणों से नवीनतम संस्करण में अपग्रेड नहीं किया जा रहा है, इसलिए आप बग फिक्स के साथ सभी का समर्थन कर रहे हैं। एक ग्राहक आपके नवीनतम 7.8 रिलीज में एक बग पाता है। आप इसे 7.8 में ठीक करें। आप कैसे जानते हैं कि अन्य रिलीज में से कितने को तय करने की आवश्यकता है? स्रोत इतिहास और समस्या पर नज़र रखे बिना।


7

स्रोत कोड इतिहास का मान संदिग्ध प्रतीत होता है।

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

साथ ही, सोर्स कोड हिस्ट्री रखने के बहुत अच्छे कानूनी कारण भी हो सकते हैं। अधिकांश स्रोत कोड डंपस्टर-डाइविंग जो मुझे करना पड़ा है (एक बिल्ड / एससीएम इंजीनियर के रूप में) मेरी कंपनी के कानूनी विभाग के अनुरोध पर।


1
व्यक्तिगत रूप से मुझे लगता है कि जहां इतिहास को देखना दुर्लभ है, उन अवसरों पर जब ऐसा करने की क्षमता की आवश्यकता होती है, तो यह बहुत मूल्यवान है। इसलिए मैं इतिहास को संरक्षित करने का पक्ष लेता हूं जब ऐसा करना व्यावहारिक है।
उउउद्लल्र्स

3

जब तक नवीनतम संस्करण सभी सॉफ़्टवेयर आवश्यकताओं को पूरा करना जारी रखता है, क्या हमें वास्तव में स्रोत कोड के इतिहास को संरक्षित करने की आवश्यकता है?

लेकिन इससे अलग, क्या सोर्स कोड के इतिहास को बनाए रखने में कोई मूल्य है?

दोनों के लिए हाँ। यह जानना उपयोगी हो सकता है कि कब कुछ बदला गया, किसके द्वारा और क्यों। यदि आप अपना इतिहास खो देते हैं, तो ऐसा करने की आपकी क्षमता प्रभावित होती है।

क्या स्रोत कोड प्रतिबद्ध इतिहास टीम के सदस्यों के बीच संचार में कोई भूमिका निभाता है? क्या होगा यदि हम प्रतिबद्ध इतिहास को खत्म कर देते हैं, लेकिन इसके बजाय संचार के लिए "स्रोत कोड" + "इकाई परीक्षण कोड" पर भरोसा करते हैं?

हाँ यह करता है। "स्रोत कोड" + "इकाई परीक्षण कोड" केवल दृष्टिकोण आपको यह नहीं बताता कि कौन / कब / क्यों।

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

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


1
+1 इसके अलावा, संचार के लिए कोड पर भरोसा करने का मतलब है कि इतिहास में होने वाली जानकारी भी टिप्पणियों में मौजूद है, जो DRY का उल्लंघन करती है।
लैरी कोलेमन

1
@ लॉरी - सच। लेकिन वास्तव में, समस्या बहुत अधिक (या डुप्लिकेटेड) जानकारी के बजाय बहुत कम जानकारी दर्ज होने की संभावना है।
स्टीफन सी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.