2010-07-02 13 views
12

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

धन्यवाद

+1

क्या आप सीवीएस से खुश थे? यदि ऐसा है तो आप Mercurial क्यों स्विच किया? –

+1

संक्षिप्त जवाब मैंने उसे बनाया है। मुख्य विचार यह था कि हमारे पास एक केंद्रीय भंडार में प्रति डेवलपर शाखाओं का उपयोग किए बिना प्रति डेवलपर संस्करण नियंत्रण हो सकता है। एक डेवलपर ने अपना काम पूरा करने के बाद वे अपने परिवर्तन एक साझा भंडार में डाल सकते थे। हमारा निरंतर एकीकरण सर्वर इस भंडार के प्रमुख को खींचता है और हमारे वितरण योग्य कलाकृतियों का निर्माण करता है। – BenM

उत्तर

9

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

आपको प्रत्येक प्रतिबद्धता के बाद भी धक्का देने की आवश्यकता नहीं है। आपका वर्कफ़्लो इस तरह कुछ देख सकता है:

  • कुछ सुविधा का भाग लें।
  • कुछ और विशेषताएँ कम करें।
  • सुविधा का अंतिम भाग प्रतिबद्ध करें।
  • बेवकूफ गलतियों के लिए कमबख्त बग फिक्स।
  • रेपो करने के लिए पूर्ण सुविधा पुश करें।

एक हद तक, यह Going Dark की तरह दिखता है, लेकिन वह यह सुनिश्चित करें कि ऊपर के उदाहरण में सुविधाओं दायरे में छोटा सा कर रहे हैं बनाने के द्वारा कम किया जा सकता है।

+1

मर्ज विवादों में से अधिकांश तब होते हैं जब 2 डेवलपर्स कक्षा में नई कार्यक्षमता जोड़ते हैं, फ़ाइल के अंत में, दोनों पंक्तियों पर होने वाली प्रत्येक विधि के अनुसार 1 विधि कहें। – Tarski

8
  1. सब आप सीवीएस के बारे में पता भूल जाओ। Mercurial ऐसा कुछ भी नहीं है भले ही कुछ आदेश कुछ हद तक समान महसूस करते हैं।

  2. http://hginit.com/ पढ़ें। उदाहरणों का पालन करें।

  3. सीवीएस के बारे में आप जो कुछ जानते हैं उसे भूल जाओ।

  4. मेरा मतलब है। यह सबसे कठिन हिस्सा है। अपने उपकरण पर भरोसा करना सीखें।

+0

मैं दूसरा हूं। यह कहकर कि "धक्का देना भूलना आसान है" यह सबूत है कि उन्होंने वर्कफ़्लो को अभी तक गले में नहीं लिया है। – tghw

+0

मैं एक नज़र डालेगा, लेकिन क्या आप किसी भी संसाधन में आ गए हैं जो थोड़ा छोटा है? @tghw क्या यह एचजी की गुप्त पंथ से एक कहावत है? – Tarski

3

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

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

  1. प्रत्येक डेवलपर प्रत्येक सुविधा को एक अलग शाखा में विकसित करता है।इस तरह:

    • आप लगातार अन्य लोगों से परिवर्तन मर्ज होने से रोकने, और

    • आप दबाव में अगले आदमी से पहले अधूरा काम पुश करने के लिए नि: शुल्क हैं, "यह विलय करने के लिए कठिन बनाता है।"

  2. किसी सुविधा "हो गया" और यदि परिवर्तन सफाई से (एक निर्णय कॉल) लागू करने के लिए प्रकट होता, मास्टर शाखा में सुविधा शाखा सीधे विलय और सुविधा शाखा को हटाना है। सुविधा शाखा में

    1. मर्ज मास्टर :

    2. एक विशेषता मास्टर शाखा के पीछे जिस तरह से (कई सुविधाओं के विलय) हो जाए तो या मर्ज अन्यथा मुश्किल दिखाई देता है।

    3. अन्य डेवलपर्स से संतुष्ट अलगाव में किसी भी बग को ढूंढें और ठीक करें।

    4. मान लीजिए कि यह सुविधा मास्टर में मर्ज हो गई है (नोटिस: अब इस दिशा में विलय परिभाषा के अनुसार साफ हो जाएगा)। यदि नहीं, तो आप केवल विकास जारी रख सकते हैं।

1

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

यह मेरे लिए ठीक लगता है। मेरी टीम आकार के बारे में दोगुनी है और यह बहुत अच्छा काम करता है।

मैं, यकीन है कि यह सबसे अच्छा कार्यप्रवाह है नहीं कर रहा हूँ के रूप में यह एक प्रतिबद्ध के बाद पुश करने के लिए मत भूलना आसान है,

आप पुश करने के लिए हर प्रतिबद्ध के बाद नहीं है; जब आप धक्का देना चाहते हैं तो आप धक्का देते हैं। DVCS के बारे में यह बड़ा विचार है: कि कमिट और पुश अलग हैं!

और 3 तरीके विलय विवाद वास्तविक सिरदर्द का कारण बन सकता है।

क्या आप कोड की एक ही पंक्ति पर काम कर रहे हैं? 5-6 प्रोग्रामर की मेरी टीम पर, दिन में कुछ बार धक्का देना/खींचना, और दिन में दो दर्जन बार करना, मुझे याद नहीं है कि आखिरी बार मुझे मर्ज विवादों को मैन्युअल रूप से हल करना पड़ा था। निश्चित रूप से पिछले महीने या दो में नहीं।

क्या कोई बेहतर वर्कफ़्लो हम उपयोग कर सकते हैं, क्योंकि मुझे लगता है कि वितरित वीसी की जटिलता इस समय लाभ से अधिक है।

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

0

इसके लायक होने के लिए, हम पहली बार Mercurial के साथ काम कर रहे एक समान आकार की टीम हैं और हमने एक ही समस्या से शुरुआत की।

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

आशा है कि आप इसे हल करें!

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