2010-02-09 17 views
12

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

यह काम मेरे अन्य परिवर्तनों से अलगाव में करने के लिए, मैं अभी बनाए गए दूसरे कार्यक्षेत्र में दोषों को काम कर रहा हूं।

मेरे परिवर्तनों को अलग करने के लिए दूसरे कार्यक्षेत्र का उपयोग करने के बाद, एक सहकर्मी ने मुझसे पूछा कि मैंने अपने परिवर्तनों को क्यों नहीं ठहराया। शेल्फिंग पर कुछ पढ़ने के बाद, ऐसा लगता है कि यह मेरी तरह की स्थितियों के लिए पसंदीदा समाधान है। मेरा प्रश्न यह है कि क्या स्थितियां, यदि कोई हों, तो क्या आप कई कार्यक्षेत्र बनाएंगे और आपको किन स्थितियों को शेल्विंग का उपयोग करना चाहिए?shelving के बारे में कुछ पोस्ट हैं, लेकिन मुझे वर्कस्पेस के विषय पर बहुत कुछ नहीं दिख रहा है।

वैसे, मुझे दूसरा वर्कस्पेस here बनाने का विचार मिला।

उत्तर

11

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

हम अपनी दुकान में बहुत सारी शाखाओं का उपयोग करते हैं, और नतीजतन, मैंने शेल्फिंग के लिए कई उपयोग नहीं देखा है। मैं अक्सर 2 अलग विकास मशीनों (कार्यालय में एक घर पर एक, वीपीएन के माध्यम से जुड़ा है) के बीच उछाल:

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

+0

आह, इसलिए मुझे परिवर्तनों का बैकअप लेने के लिए कम से कम अपने मूल कार्यक्षेत्र पर अपने परिवर्तनों को ढंकना चाहिए। साथ ही, पीसी के बीच परिवर्तनों को स्थानांतरित करने के लिए शेल्विंग का उपयोग करने के बारे में अच्छी बात है। मैं देख सकता था कि बहुत उपयोगी है। – JChristian

1

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

+0

ब्रांचिंग एकाधिक संस्करणों पर काम करने के लिए उपयोग नहीं किया जा रहा है? या क्या प्रत्येक व्यक्ति के पास प्रत्येक शाखा के लिए एक अलग कार्यक्षेत्र होगा? – JChristian

+0

हां, लेकिन आप प्रत्येक शाखा में जाने के लिए विभिन्न कार्यक्षेत्रों का उपयोग करेंगे। –

3

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

क्यों नहीं अपने कोड की एक नई शाखा बनाएं। आप उस शाखा पर काम कर सकते हैं और किसी और के बदलावों पर कदम उठाए बिना जांच सकते हैं, क्योंकि आप कोड की अपनी शाखा में जांच कर रहे हैं। फिर, जब आपने अपना परिवर्तन पूरा कर लिया है, और अन्य ने अपनी मुख्य शाखा पर पूरा कर लिया है, तो आप अपने परिवर्तन मुख्य शाखा में विलय कर सकते हैं।

+0

मैंने एक और शाखा बनाने का विचार नहीं किया था। क्या आप सुझाव दे रहे हैं कि मुझे उस अवरुद्ध कार्यक्षमता के लिए दूसरी शाखा बनाना चाहिए था जिस पर मैं काम कर रहा था और फिर दोषों पर काम करने के लिए मुख्य शाखा का उपयोग करना चाहिए? – JChristian

+1

@ जे क्रिस्टियन - मैं नहीं कह रहा हूं कि आपके पास होना चाहिए। लेकिन एक विकल्प आपके लिए काम करने के लिए या बाहरी संसाधनों के लिए काम करने के लिए एक शाखा बनाना होगा, और फिर पूरा होने पर उन्हें एक साथ मिला दिया जाएगा। जब मैं किसी ऐप की अगली रिलीज पर काम कर रहा हूं, तो मैंने अक्सर यह किया है, अगर मौजूदा रिलीज पर किए जा रहे परिवर्तन महत्वपूर्ण हैं, और मैं अलगाव में उन पर काम करना चाहता हूं। –