2009-07-17 18 views
6

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

मैंने संबंधित एसवीएन क्यूए पढ़ा, लेकिन मेरे पास मेरा खुद का सवाल है कि मुझे इसका जवाब चाहिए।
मैं कर सकते हैं:
एसवीएन लेआउट - सर्वोत्तम अभ्यास

/trunk 
/tags 
/branches 
/3rdparty 

कहाँ सब कुछ हम विकसित/ट्रंक और किसी भी 3rdparty है कि हम परिवर्तन नहीं करते से बाहर आता है/3rdparty को जाता है।

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

क्या मेरे सभी अड्डों को कवर किया गया है?

उत्तर

9

एसवीएन रेडबुक here में विभिन्न प्रोजेक्ट प्रकारों और उन्हें प्रबंधित करने के तरीके के लिए लेआउट पर बहुत सारी जानकारी शामिल है।

आप 'तृतीय पक्ष' नामक एक स्वतंत्र रेपो से डेटा खींचने के लिए हुक/ट्रिगर/बाहरी का भी उपयोग करना चाह सकते हैं। तो जब एक डेवलपर एक रेपो की जांच करता है, तो उसे तीसरा हिस्सा भी मिलता है। चिंताओं को अलग करने के कई तरीके हैं लेकिन घटक से एक एकीकृत रेपो प्रस्तुत करते हैं।

गुड लक

+1

+1। –

+0

मैंने पुस्तक में रिलीज शाखा के बारे में कुछ सामान देखा होगा, अगर आप यह कह सकते हैं कि यह कहां है, तो यह एक अच्छा पक्ष होगा। धन्यवाद – pal4life

0

मेरे स्क्रिप्ट ट्रंक बाहर की जाँच करता है, फाइल को परिवर्तित कर (AssemblyInfo.cs फ़ाइलें, आदि में संस्करण संख्या समायोजित कर देता है), तो यह है कि टैग करता है। यदि आपको फ़ाइलों को किसी भी तरह से संशोधित करने की आवश्यकता नहीं है, तो पहले टैगिंग पहले भी अच्छी होगी।

इसके अलावा, आपका सेटअप कम से कम मेरे लिए अच्छा लगता है।

+0

को आपके मूल फ़ोल्डर के बाहर तीसरी पार्टी का संदर्भ देना है एक अच्छा विचार नहीं है। मैं ट्रंक \ lib के तहत एक फ़ोल्डर बनाउंगा और वहां सभी तीसरे पक्ष की चीज़ें रखूंगा। इस तरह आप अपने आधार के बाहर संदर्भों से बच सकते हैं। IMGLO –

+0

क्या आपने अपनी स्क्रिप्ट कहीं भी पोस्ट की है, इसलिए मैं एक नज़र देख सकता हूं? धन्यवाद – un33k

+0

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

1

आप तीसरे पक्ष को ट्रंक में क्यों नहीं ले जाते? जब आप अपनी पार्टी को कॉपी करते हैं तो तीसरी पार्टी की एक प्रति शाखा में जाती है। और जाहिर है कि आप ब्रांडे में तीसरे पक्ष की सामग्री नहीं बदलेंगे क्योंकि आपकी शाखा मौजूदा तीसरे पक्ष की सामग्री के आधार पर कोडित है।

मैं इस बारे में इतना निश्चित नहीं हूं कि आप किस बारे में बात कर रहे हैं। क्या वह संस्करण संख्या का मतलब है? यदि यह संस्करण संख्या पास है कि स्क्रिप्ट के माध्यम से और निर्माण लेबल।

+3

ट्रंक में तीसरे पक्ष? कृपया नहीं, इस तरह पागलपन झूठ बोलता है। तृतीय पक्ष मूल रूप से लाल पुस्तक से एक विक्रेता शाखा है, उन्हें अलग रखने के लिए मेरा वोट है। –

1

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

आपको तीसरे पक्ष के कलाकृतियों के लिए externals का उपयोग करने पर विचार करना चाहिए।

2

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

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

मैं भी रेपो कुछ हद तक की तरह परत चाहते हैं:

project 
/trunk 
/branches 
/tags 
3rdparty 

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

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

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