2009-07-29 10 views
5

मुझे अपनी कंपनी की टीएफएस 2008 स्थापना के लिए प्रक्रिया टेम्पलेट्स और चेक-इन नीतियों को स्थापित करने में सहायता करने के लिए काम किया गया है।संस्करण नियंत्रण के लिए क्या चेक-इन नीतियों पर विचार किया जाना चाहिए?

तीन चेक-इन नीतियों के अलावा (एक चेक-इन कार्रवाई के खिलाफ टिप्पणियां होनी चाहिए, एक कोड फ़ाइल को सहकर्मी-समीक्षा की जानी चाहिए, चेक-इन से जुड़े एक कार्य आइटम होना चाहिए), मुझसे पूछा गया है किसी अन्य पर विचार करने और लागू करने के लिए।

संस्करण नियंत्रण के लिए लागू करने के लिए कुछ सबसे महत्वपूर्ण या उपयोगी नीतियां क्या हैं?

+1

पीयर-समीक्षा चेक-इन के लिए एक शर्त नहीं है। आप पहले चेक कर सकते हैं, सहकर्मी प्रतिबद्ध फ़ाइल की समीक्षा करें, फिर समीक्षा के बाद फ़ाइलों को दूसरी शाखा में प्रचारित करें। – Dan

उत्तर

6

कम बेहतर।

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

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

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

यदि आप चेक-इन नीतियों के बारे में अधिक चर्चा पढ़ना चाहते हैं, तो blog post I did on the balancing act a while ago पर एक नज़र डालें। चेक-इन नीतियों के बारे में कुछ और चर्चा सुनने के लिए, मैंने हाल ही में एक टीम टीम सिस्टम एमवीपी के साथ टीएफएस के उपयोग के बारे में बात करते हुए पॉडकास्ट रिकॉर्ड किया और यह दिलचस्प हो सकता है (Radio TFS, Using TFS with Ed Blankenship)। अंत में हमने 2008 में Radio TFS episode all about check-in policies भी किया जो कि ब्याज का हो सकता है।

2

कुछ नियम है कि हम हमारी कंपनी में का पालन करें:

  • बार में एक ही काम करने के लिए संबंधित सभी परिवर्तन हो (कि मदद मिलेगी परिवर्तन और भविष्य पुनरावर्तन की समीक्षा करने या यदि आवश्यक हो तो विलीन हो जाती है)।
  • टेम्पलेट आधारित टिप्पणियां (उदाहरण: कोड के साथ सभी टिप्पणियों को उपसर्ग करें जो कि किया गया था, + जोड़ों के लिए, - हटाने के लिए, * अद्यतनों के लिए, महत्वपूर्ण संशोधन आदि के लिए)।
  • स्पष्ट रूप से हमेशा चेक-इन कोड जो संकलित करता है, और मुख्य पंक्ति में काम समाप्त करता है।
  • शाखाओं में दैनिक अधूरा काम की जांच करें।
+0

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

+0

आप सही हैं, लेकिन हमने अपनी कंपनी में उस तरह से फोन किया। –

2

बिल्ड को तोड़ना मत! बेशक, उस पर जांच करने और चेक-इन को अस्वीकार करने का एक स्वचालित तरीका चुनौती चुनौती है।

+0

यह वास्तव में एक छोटा सा है। साथ ही, मुझे लगता है कि स्रोतों की स्वचालित जांच नीति नहीं है, यह नियंत्रण का एक तंत्र है या आश्वासन देता है कि नीतियों का पालन किया जाता है, इस मामले में हमेशा चेक-इन बिल्ड-सक्षम सामान की नीति। –

0

स्पष्ट रूप से, कम नीतियां, बेहतर। आपके पास जितनी अधिक नीतियां हैं, संस्करण नियंत्रण का उपयोग न करने के लिए प्रोत्साहन जितना अधिक होगा। तब क्या होता है:

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

वास्तव में, मुझे लगता है कि आपकी तीन चेक-इन नीतियां पहले से ही बहुत अधिक हैं। उदाहरण के लिए:

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

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

मैं सामान्य सिद्धांतों के लिए Agile Manifest, और विशेष रूप से Lean Software Development की अनुशंसा करता हूं।

या, स्टैक ओवरफ्लो डिज़ाइन दर्शन को ध्यान में रखते हुए, सिस्टम को इच्छित व्यवहार को इनाम दें।

+0

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

+0

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

+0

टीएफएस में शेल्व सुविधा भी है। यह आपको अपने कामकाजी कोड के साथ मिनी-डिवलपर केवल शाखा बनाने के लिए अनुमति देता है। –

1

एक ही शाखा पर काम कर रहे डेवलपर्स की संख्या को कम रखने की कोशिश करें। इस तरह शाखा संकलन, इकाई परीक्षण, और प्रतिगमन के संबंध में स्थिर रहता है। यह एक दुःस्वप्न है यदि कोई डेवलपर चेक करता है जिसमें संकलन होता है लेकिन उसका कोड एप्लिकेशन (जैसे लॉगिन) का एक प्रमुख क्षेत्र तोड़ता है।

यदि आपको वास्तव में एक ही शाखा में 10 से अधिक डेवलपर्स कोड की जांच करनी है, तो हमने एक ईमेल नीति शुरू कर दी है जहां डेवलपर चेक इन सभी को चेतावनी देता है कि वे जांच कर रहे हैं, ताकि कोई भी अपडेट करने का प्रयास न करे चेक के बीच में शाखा की प्रति। कभी-कभी, हमें बातचीत करना पड़ता था, जहां हमने चेक इन को प्रतिबंधित करने की तारीख में एक समय निकाल दिया था, ताकि अपडेट सुरक्षित हों।

2

लोगों उपयोग हम जहाँ मैं TFS पर काम कर रहे हैं:

  • कोड विश्लेषण
    • यह सुनिश्चित करता है कि सभी कोड devs मशीन पर संकलित किया गया था इससे पहले कि यह
  • में जांच की गई
  • वर्क आइटम एसोसिएशन
    • यदि आपने कोई बदलाव किया है तो वहां होना चाहिए था दिया गया काम!
  • अंतिम बिल्ड सफल
    • TFS बनाएँ सर्वर है कि स्रोत नियंत्रण में मौजूदा कोड एक स्वतंत्र मशीन पर संकलित जाँच करने के लिए उपयोग करना
  • टिप्पणी में चेक (TFS Powertools का हिस्सा - http://msdn.microsoft.com/en-us/teamsystem/bb980963.aspx)
    • यह चेक इन का सारांश देखने के लिए सक्षम होने के लिए अच्छा है काम मद (ओं)
    • पर जाने के लिए बिना
संबंधित मुद्दे

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