2009-03-15 17 views
5

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

पी.एस:

हम एमएस स्रोत सुरक्षित 2005 का उपयोग कर रहे हैं और मैं अपने सहयोगियों स्रोत कोड हर लेते हैं और अपनी मशीनों पर निर्माण करने के लिए के रूप में वे केवल बाइनरी कोड की जरूरत नहीं है नहीं करना चाहती।

उत्तर

2

क्या उन्हें वास्तव में उपयोगिता की आवश्यकता है, पल आप उन्हें बदलते हैं? यह आमतौर पर सच नहीं है।

आमतौर पर सहकर्मियों को अपने अगले परिवर्तन बिंदु पर नवीनतम कोड को "खींचने" देना बेहतर होता है, जब वे अपने स्वयं के परिवर्तनों में विलय करते हैं।

आप एक स्रोत नियंत्रण प्रणाली का उपयोग कर रहे हैं, है ना?

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

यदि उन्हें वास्तव में एक विशिष्ट तत्काल पर अद्यतन करने की आवश्यकता है (उदाहरण के लिए, उपयोगिताओं को एक स्कीमा के साथ कुछ केंद्रीय डेटाबेस से संपर्क करके काम कर रहे हैं, तो आप डेटाबेस के अद्यतन करते समय उसी समय सभी की बाइनरी अपडेट कर सकते हैं स्कीमा) तो मैं यूटिलिटीज को वेब सेवाओं में बदलने का सुझाव दूंगा। ऐसा करने के बहुत सारे आसान तरीके हैं। फिर सहकर्मी वेब पेजों के माध्यम से उन पर पहुंच सकते हैं यदि वे इंटरैक्टिव हैं, या wget जैसे कुछ के माध्यम से यदि वे कमांड लाइन स्वचालित हैं। आप wget for Windows here प्राप्त कर सकते हैं।

3

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

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

1

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

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

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