एसवीएन, शाखा का उपयोग कैसे करें? टैग? सूँ ढ?


163

मैं थोड़ा बहुत घूम रहा था और एसवीएन को एक अच्छा "शुरुआती" गाइड नहीं मिला, बल्कि "मैं कैसे कमांड का उपयोग करता हूं" के अर्थ में नहीं; मैं अपने स्रोत कोड को कैसे नियंत्रित करूं?

मैं स्पष्ट करना चाहूंगा कि निम्नलिखित विषय हैं:

  • आप कितनी बार करते हैं? जितनी बार एक Ctrl+ दबाएगा s?
  • एक शाखा क्या है और एक टैग क्या है और आप उन्हें कैसे नियंत्रित करते हैं?
  • एसवीएन में क्या जाता है? केवल स्रोत कोड या क्या आप अन्य फ़ाइलों को भी यहाँ साझा करते हैं? (नहीं माना संस्करण फ़ाइलें ..)

मुझे पता नहीं है कि शाखा और टैग क्या है इसलिए मुझे इसका उद्देश्य नहीं पता है, लेकिन मेरा जंगली अनुमान यह है कि आप सामान को ट्रंक पर अपलोड करते हैं और जब आप एक प्रमुख निर्माण करते हैं तो आप इसे शाखा में स्थानांतरित करते हैं? तो, इस मामले में एक प्रमुख निर्माण क्या माना जाता है?


एक कमिट 'फ्रीक्वेंसी' निर्धारित करने का एक अच्छा तरीका यह है कि इसे मर्ज बिंदु से देखा जाए। यदि आपके पास एक शाखा थी जिसे आपको ट्रंक से परिवर्तनों को मर्ज करने की आवश्यकता थी, तो मुट्ठी भर संशोधनों के माध्यम से उठाकर बनाम 1000 जल्द ही आपको एक समझदार दृष्टिकोण पर समाप्त करने में मदद करता है।
फिल कूपर

जवाबों:


60

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

यह सभी देखें:

क्या आप एक शाखा में या ट्रंक में विकास जारी रखते हैं

शाखापर रणनीति


2
: पर विशेष नज़र में svnbook.red-bean.com/en/1.5/...
morechilli

86

मैंने खुद से वही सवाल पूछे जब हम यहां तोड़फोड़ को लागू करने के लिए आए थे - लगभग 20 डेवलपर्स 4 - 6 परियोजनाओं में फैले थे। मुझे '' उत्तर '' के साथ कोई एक अच्छा स्रोत नहीं मिला। पिछले 3 वर्षों में हमारा उत्तर कैसे विकसित हुआ, इसके कुछ हिस्से इस प्रकार हैं:

- जितनी बार उपयोगी हो उतना कमिट करें; जब भी आपने पर्याप्त कार्य किया है, तो हमारे अंगूठे का नियम प्रतिबद्ध है कि संशोधनों के खो जाने पर इसे फिर से करने में समस्या होगी; कभी-कभी मैं हर 15 मिनट में ऐसा करता हूं, तो कई बार यह दिन हो सकता है (हां, कभी-कभी मुझे 1 लाइन कोड लिखने के लिए एक दिन लगता है)

- हम शाखाओं का उपयोग करते हैं, जैसा कि आपके पहले दिए गए उत्तर में से एक है, विभिन्न विकास पथों के लिए; अभी हमारे एक कार्यक्रम के लिए हमारे पास 3 सक्रिय शाखाएँ हैं: 1 मुख्य विकास के लिए, 1 कार्यक्रम को समानांतर बनाने के लिए अभी तक-अधूरा प्रयास के लिए, और 1 इसे संशोधित करने के प्रयास के लिए XML इनपुट और आउटपुट फ़ाइलों का उपयोग करने के लिए;

- हम शायद ही टैग का उपयोग करते हैं, हालांकि हमें लगता है कि हमें उत्पादन के लिए रिलीज की पहचान करने के लिए उनका उपयोग करना चाहिए;

एक ही रास्ते पर आगे बढ़ने के बारे में सोचें। विकास के विपणन के कुछ समय या स्थिति में उत्पाद के पहले संस्करण को जारी करने का निर्णय लिया जाता है, इसलिए आप '1' (या '1.0' या आपके पास क्या है) नामक पथ में एक ध्वज लगाते हैं। किसी अन्य समय में कुछ चमकीली चिंगारी कार्यक्रम को समानांतर करने का निर्णय लेती है, लेकिन यह तय करती है कि इसमें कुछ सप्ताह लगेंगे और लोग इस बीच मुख्य मार्ग को बंद रखना चाहते हैं। तो आप पथ में एक कांटा का निर्माण करते हैं और विभिन्न लोग अलग-अलग कांटे नीचे भटकते हैं।

सड़क में झंडे को 'टैग' कहा जाता है, और सड़क में कांटे ऐसे होते हैं जहाँ 'शाखाएँ' विभाजित होती हैं। कभी-कभी, भी, शाखाएं एक साथ वापस आती हैं।

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

हम अपने प्रोडक्शन रिलीज़ के लिए विंडोज निष्पादन योग्य भी रखते हैं, ताकि सॉफ्टवेयर की तलाश कर रहे लोगों के लिए एक ही स्थान प्रदान किया जा सके - हमारे लिनक्स रिलीज़ एक सर्वर पर जाते हैं, इसलिए इसे संग्रहीत करने की आवश्यकता नहीं है।

- हमें इसकी आवश्यकता नहीं है कि हर समय भंडार एक नवीनतम संस्करण देने में सक्षम हो, जो निर्माण और निष्पादन करता हो; कुछ परियोजनाएँ इस तरह से काम करती हैं, कुछ नहीं; निर्णय परियोजना प्रबंधक के साथ रहता है और कई कारकों पर निर्भर करता है, लेकिन मुझे लगता है कि किसी कार्यक्रम में बड़े बदलाव करने पर यह टूट जाता है।


18
* How often do you commit? As often as one would press ctrl + s?

जितनी बार संभव हो। जब तक यह स्रोत नियंत्रण में नहीं होता कोड मौजूद नहीं है :)

बार-बार कमिट करना (इसके बाद छोटे बदलाव सेट) आपको अपने परिवर्तनों को आसानी से एकीकृत करने और कुछ न तोड़ने की संभावनाएं बढ़ाने की अनुमति देता है।

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

जब मैं अपनी शाखा पर काम करता हूं तो मैं जितना संभव हो उतना कमिट करना पसंद करता हूं (शाब्दिक रूप से जितनी बार मैं ctrl + s दबाता हूं)।

* What is a Branch and what is a Tag and how do you control them?

SVN पुस्तक पढ़ें - यह वह स्थान है जिसे आपको SVN सीखते समय शुरू करना चाहिए:

* What goes into the SVN?

प्रलेखन, निर्माण और अन्य सामान के लिए आवश्यक छोटे बायनेरिज़ जिनका कुछ मूल्य स्रोत नियंत्रण में है।


11

यहाँ कम आवृत्ति, प्रतिबद्ध संदेश, परियोजना संरचना, स्रोत नियंत्रण और अन्य सामान्य दिशानिर्देशों के तहत क्या रखा जाए, इस पर कुछ संसाधन दिए गए हैं:

इन ढेर अतिप्रवाह सवालों में कुछ उपयोगी जानकारी भी शामिल हैं जो ब्याज की हो सकती हैं:

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

जैसा कि आप इस विषय पर थोड़ा और पढ़ने के बाद महसूस कर सकते हैं, इस क्षेत्र में सबसे अच्छा अभ्यास करने वाले लोगों की राय अक्सर भिन्न होती है और कभी-कभी परस्पर विरोधी होती है। मुझे लगता है कि आपके लिए सबसे अच्छा विकल्प यह है कि अन्य लोग क्या कर रहे हैं, इस बारे में पढ़ें और उन दिशानिर्देशों और प्रथाओं को चुनें जिन्हें आप महसूस करते हैं कि आप सबसे अधिक समझ में आते हैं।

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


8

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

शाखाओं का उपयोग दो तरीकों में से एक में किया जा सकता है, आम तौर पर: 1) विकास के लिए एक सक्रिय शाखा (और ट्रंक स्थिर रहता है), या 2) वैकल्पिक देव पथ के लिए शाखाएं।

टैग आमतौर पर रिलीज की पहचान के लिए उपयोग किए जाते हैं, इसलिए वे मिश्रण में खो नहीं जाते हैं। Of रिलीज़ ’की परिभाषा आपके ऊपर है।


सहमत: जब तक आप निर्माण को नहीं तोड़ते हैं, तब तक प्रतिबद्ध रहें!
ब्रैंडन मोंटगोमरी

7

मुझे लगता है कि मुख्य समस्या स्रोत नियंत्रण की मानसिक तस्वीर उलझन में है। हमारे पास आमतौर पर ट्रंक और शाखाएं होती हैं, लेकिन फिर हमें टैग / रिलीज़ या उस प्रभावित करने वाली चीज़ के असंबंधित विचार मिलते हैं।

यदि आप किसी पेड़ के विचार का अधिक पूरी तरह से उपयोग करते हैं, तो यह स्पष्ट हो जाता है, कम से कम मेरे लिए तो यह है।

हमें ट्रंक -> फॉर्म शाखाएं मिलती हैं -> फलों का उत्पादन (टैग / रिलीज)।

यह विचार कि आप एक ट्रंक से परियोजना को आगे बढ़ाते हैं, जो तब शाखा को पकड़ लेने के लिए एक बार ट्रंक के स्थिर होने पर शाखाएं बनाता है। फिर जब शाखा ने एक फल का उत्पादन किया है तो आपने उसे शाखा से हटा दिया है और इसे एक टैग के रूप में जारी किया है।

टैग अनिवार्य रूप से डिलिवरेबल्स हैं। जबकि ट्रंक और शाखाएं उन्हें पैदा करती हैं।


4

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

आप कितनी बार करते हैं? जितनी बार एक ctrl + s दबाएगा?

अक्सर, लेकिन जितनी बार आप ctrl + s दबाते हैं उतनी बार नहीं। यह व्यक्तिगत स्वाद और / या टीम नीति की बात है। व्यक्तिगत रूप से मैं कहूंगा कि जब आप कोड का एक कार्यात्मक टुकड़ा पूरा करते हैं, तो वह छोटा होता है।

एक शाखा क्या है और एक टैग क्या है और आप उन्हें कैसे नियंत्रित करते हैं?

सबसे पहले, ट्रंक वह जगह है जहां आप अपना सक्रिय विकास करते हैं। यह आपके कोड की मेनलाइन है। एक शाखा मेनलाइन से कुछ विचलन है। यह एक प्रमुख विचलन हो सकता है, पिछले रिलीज की तरह, या सिर्फ एक मामूली ट्वीक जिसे आप आज़माना चाहते हैं। एक टैग आपके कोड का एक स्नैपशॉट है। यह एक लेबल या बुकमार्क को किसी विशेष संशोधन में संलग्न करने का एक तरीका है।

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

एसवीएन में क्या जाता है? केवल स्रोत कोड या क्या आप अन्य फ़ाइलों को भी यहाँ साझा करते हैं?

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


अक्सर, लेकिन जितनी बार आप ctrl + s दबाते हैं उतनी बार नहीं। माना। शायद आपको प्रभावों को देखने के लिए अपने परिवर्तनों को सहेजना होगा। मैं शायद ऐसा 10 बार करता हूं, कुछ कोड को थोड़ा-थोड़ा करके बनाता हूं, इससे पहले कि मैं कुछ कर सकता हूं और जो मैंने किया है उसके बारे में सार्थक टिप्पणी कर सकता हूं। इसे दूसरे तरीके से रखने के लिए, मैं चाहता हूं कि मेरी टिप्पणी "इस सुविधा को जोड़े" या "उस बग को ठीक कर दे" और "कुछ पंक्तियों के आसपास नहीं पड़ी, यह सुनिश्चित नहीं है कि यह कैसे काम करेगा।" इसलिए मैं दिन में शायद आधा दर्जन बार काम करता हूं।
नाथन लॉन्ग

4

जनवरी 2009 में SO पॉडकास्ट # 36 पर दिखाई देने वाले एरिक सिंक ने सोर्स कंट्रोल हाउ-टू शीर्षक के तहत लेखों की एक उत्कृष्ट श्रृंखला लिखी।

(एरिक सोर्सगियर का संस्थापक है, जो सोर्ससेफ के प्लग-संगत संस्करण का विपणन करता है, लेकिन भयावहता के बिना।)


4

बस जवाब का एक और सेट जोड़ने के लिए:

  • जब भी मैं काम का एक टुकड़ा खत्म करता हूं तो मैं प्रतिबद्ध हूं। कभी-कभी यह एक छोटा बगफिक्स होता है जो बस एक पंक्ति को बदल देता है और मुझे करने में 2 मिनट लगते हैं; अन्य बार यह दो सप्ताह के पसीने के लायक है। इसके अलावा, अंगूठे के एक नियम के रूप में, आप कुछ भी नहीं बनाते हैं जो बिल्ड को तोड़ता है। इस प्रकार यदि आपको कुछ करने के लिए लंबा समय लगा है, तो प्रतिबद्ध होने से पहले नवीनतम संस्करण लें, और देखें कि क्या आपके परिवर्तन बिल्ड को तोड़ते हैं। बेशक, अगर मैं कमिट किए बिना लंबे समय तक जाता हूं, तो यह मुझे असहज करता है क्योंकि मैं उस काम को ढीला नहीं करना चाहता। टीएफएस में मैं इस अच्छी चीज को इसके लिए "अलमारियों" के रूप में उपयोग करता हूं। SVN में आपको दूसरे तरीके से काम करना होगा। शायद अपनी खुद की शाखा बनाएं या इन फ़ाइलों को मैन्युअल रूप से किसी अन्य मशीन में बैकअप करें।
  • शाखाएँ आपके पूरे प्रोजेक्ट की प्रतियाँ हैं। उनके उपयोग के लिए सबसे अच्छा चित्रण शायद उत्पादों का संस्करण है। कल्पना करें कि आप एक बड़े प्रोजेक्ट पर काम कर रहे हैं (कहते हैं, लिनक्स कर्नेल)। महीनों के पसीने के बाद आप अंततः संस्करण 1.0 पर आ गए हैं जिसे आप जनता के लिए जारी करते हैं। उसके बाद आप अपने उत्पाद के संस्करण 2.0 पर काम करना शुरू करते हैं जो बेहतर तरीके से होने जा रहा है। लेकिन इस बीच, वहाँ बहुत सारे लोग हैं जो संस्करण 1.0 का उपयोग कर रहे हैं। और ये लोग बग ढूंढते हैं जिन्हें आपको ठीक करना है। अब, आप आने वाले 2.0 संस्करण में बग को ठीक नहीं कर सकते हैं और ग्राहकों को भेज सकते हैं - यह बिल्कुल तैयार नहीं है। इसके बजाय आपको 1.0 स्रोत की एक पुरानी प्रति खींचनी होगी, वहां बग को ठीक करना होगा, और लोगों को भेजना होगा। यह कौन सी शाखाएं हैं। जब आपने 1 जारी किया। 0 संस्करण आपने SVN में एक शाखा बनाई थी जो उस बिंदु पर स्रोत कोड की एक प्रतिलिपि बनाती थी। इस शाखा को "1.0" नाम दिया गया था। फिर आपने अपने मुख्य स्रोत की प्रतिलिपि में अगले संस्करण पर काम जारी रखा, लेकिन 1.0 कॉपी वहीं रह गई, जब यह रिलीज के समय था। और आप वहां बग्स को ठीक करना जारी रख सकते हैं। टैग केवल उपयोग में आसानी के लिए विशिष्ट संशोधनों से जुड़े नाम हैं। आप "स्रोत कोड का संशोधन 2342" कह सकते हैं, लेकिन इसे "पहले स्थिर संशोधन" के रूप में संदर्भित करना आसान है। :)
  • मैं आमतौर पर सब कुछ स्रोत नियंत्रण में रखता हूं जो सीधे प्रोग्रामिंग से संबंधित है। उदाहरण के लिए, चूंकि मैं वेबपेज बना रहा हूं, इसलिए मैंने इमेज और सीएसएस फाइलें भी सोर्स कंट्रोल में डाल दी हैं, कॉन्फिग फाइल आदि का उल्लेख नहीं करने के लिए। प्रोजेक्ट डॉक्यूमेंटेशन वहां नहीं जाता है, हालांकि वास्तव में यह सिर्फ प्राथमिकता का मामला है।

3

दूसरों ने कहा है कि यह आपकी शैली पर निर्भर करता है।

आपके लिए बड़ा सवाल यह है कि आप अपने सॉफ़्टवेयर को कितनी बार "एकीकृत" करते हैं। टेस्ट संचालित विकास, एजाइल और स्क्रैम (और कई, कई अन्य) छोटे परिवर्तन और निरंतर एकीकरण पर भरोसा करते हैं। वे उपदेश देते हैं कि छोटे परिवर्तन किए जाते हैं, हर कोई हर समय टूटता है और उन्हें ठीक करता है।

हालाँकि एक बड़ी परियोजना (सरकार, रक्षा, 100k + LOC के बारे में सोचें) पर आप निरंतर एकीकरण का उपयोग नहीं कर सकते क्योंकि यह संभव नहीं है। इन स्थितियों में बहुत कम परिश्रम करने के लिए ब्रांचिंग का उपयोग करना बेहतर हो सकता है, लेकिन ट्रंक में वापस लाएं केवल वही काम करेगा और निर्माण में एकीकृत होने के लिए तैयार है।

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

इस सवाल पर कोई निश्चित जवाब नहीं है, सबसे अच्छा तरीका है कि आप अपनी टीम के साथ बेहतरीन समझौता समाधान के साथ काम करें।


2

संस्करण नियंत्रण तोड़फोड़ के साथ शुरुआती और पुराने हाथों के लिए एक जैसा है।

मुझे नहीं लगता कि आप कम से कम इस के पहले कुछ अध्यायों को पढ़े बिना ही तोड़फोड़ का प्रभावी ढंग से उपयोग कर सकते हैं।


1

प्रतिबद्ध करने के लिए, मैं निम्नलिखित रणनीतियों का उपयोग करता हूं:

  • जितनी बार हो सके कमिट करें।

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

  • किसी भी कमिट पर बिल्ड को न तोड़ें - रिपॉजिटरी के किसी भी संस्करण को प्राप्त करना और उसका निर्माण करना संभव होना चाहिए।

एप्लिकेशन को बनाने और चलाने के लिए आवश्यक सभी फाइलें एसवीएन में होनी चाहिए। जब तक वे यूनिट परीक्षणों का हिस्सा न हों, तब तक परीक्षण फ़ाइलें और ऐसी नहीं होनी चाहिए।


आपके नियम 1 और 3 कुछ विरोधाभासी हैं। हालाँकि अगर मुख्य विकास सुविधा शाखाओं पर किया जाता है, तो नियम # 3 उन छोटे परिवर्तनों के लिए "ट्रंक को तोड़ नहीं सकता" है जहां शाखाएं ओवरकिल होंगी।
क्रिस चारारुक

1

यहाँ बहुत सारी अच्छी टिप्पणियाँ हैं, लेकिन कुछ का उल्लेख नहीं किया गया है जो प्रतिबद्ध संदेश है। ये अनिवार्य और सार्थक होने चाहिए। विशेषकर ब्रांचिंग / मर्जिंग के साथ। यह आपको यह ट्रैक करने की अनुमति देगा कि कौन से परिवर्तन प्रासंगिक हैं जो बग की विशेषताएं हैं।

उदाहरण के लिए svn commit . -m 'bug #201 fixed y2k bug in code'किसी को भी बताएगा जो इतिहास को देखता है कि वह संशोधन किस लिए था।

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


1

हमारे काम की नीति इस प्रकार है (ऑब्जेक्ट-ओरिएंटेड फ्रेमवर्क पर काम करने वाली मल्टी-डेवलपर टीम):

  • पिछले दिन के बदलावों को प्राप्त करने के लिए हर दिन एसवीएन से अपडेट करें

  • यदि आप बीमार हैं या अगले दिन अनुपस्थित हैं तो रोजाना कमिट करें। कोई दूसरा व्यक्ति आसानी से वहां से निकल सकता है जहां से आपने छोड़ा था।

  • कुछ भी टूटने वाले कोड को कमिट न करें, क्योंकि यह अन्य डेवलपर्स को प्रभावित करेगा।

  • छोटे आकार पर काम करें और दैनिक कमेंट के साथ कमेंट करें!

  • एक टीम के रूप में: एक विकास शाखा रखें, फिर प्री-रिलीज़ कोड (क्यूए के लिए) को उत्पादन शाखा में स्थानांतरित करें। इस शाखा में केवल पूरी तरह से काम करने वाला कोड होना चाहिए।



0

मुझे लगता है कि आवृत्ति करने के बारे में दो तरीके हैं:

  1. प्रत्येक कार्यान्वित विधि, कोड का छोटा हिस्सा, आदि के लिए बहुत बार प्रतिबद्ध।
  2. मॉड्यूल, आदि जैसे कोड के केवल पूर्ण भागों को कमिट करें

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

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