7

में कार्यशील प्रतिलिपि को हटाकर मैं वर्तमान में काम पर निरंतर एकीकरण वातावरण स्थापित करने की प्रक्रिया में हूं। हम VisualSVN सर्वर और CrusieControl.NET का उपयोग कर रहे हैं। कभी-कभी एक बिल्ड विफल हो जाएगा और एक लक्षण यह है कि CruiseControl.NET कार्यशील प्रतिलिपि में संघर्ष हैं। मेरा मानना ​​है कि इस तरह से मैंने विजुअल स्टूडियो समाधान स्थापित किए हैं। उम्मीद है कि हम इस माहौल में जितनी अधिक परियोजनाएं चलाएंगे, उतनी ही अच्छी समझ होगी कि उन्हें कैसे स्थापित किया जाए, इसलिए मैं इस बात पर सवाल नहीं उठा रहा कि इस चरण में संघर्ष क्यों होते हैं। बिल्ड को ठीक करने के लिए मैं कार्यशील प्रतिलिपि हटाता हूं और एक नया निर्माण बल देता हूं - यह हर बार (वर्तमान में) काम करता है। तो मेरे प्रश्न हैं: कार्यशील प्रति को निरंतर एकीकरण निर्माण प्रक्रिया का एक वैध हिस्सा हटा रहा है, और मैं इसके बारे में कैसे जा सकता हूं?प्री-बिल्ड कार्य - क्रूज़ कंट्रोल.NET

मैंने एमएसटीस्क सहित समाधानों का प्रयास किया है और कमांड लाइन से हटाना कॉल किया है लेकिन मुझे कोई भाग्य नहीं है।

इतना अधिक शब्दों वाले होने के लिए खेद है - अच्छा काम यह एक बीटा :)

+0

सबवर्सन के लिए क्लीनकॉपी अब संस्करण 1.4.1 में लागू किया गया है। आपको बस अपनी कॉन्फ़िगरेशन में क्लीनकॉपी को सही पर सेट करना होगा – Alex

उत्तर

9

आपके निर्माण से पहले या बाद में पूर्ण हटा देना अच्छा अभ्यास है। इसका मतलब यह है कि आपके निर्माण पर्यावरण को पुरानी फ़ाइल को चुनने का कोई मौका नहीं है। आपकी इमारत वास्तव में भंडार में क्या है के खिलाफ है।

कामकाजी प्रति को हटाना संभव है क्योंकि मैंने इसे नंत के साथ किया है।

नंत में मेरे पास अपने फ़ोल्डर में एक साफ स्क्रिप्ट होगी जिसके साथ मैं हटाना चाहता हूं और फिर इसे CC.net से आमंत्रित करता हूं।

मुझे लगता है कि यह बैच फ़ाइल के साथ भी संभव होना चाहिए। rmdir आदेश पर एक नजर डालें http://www.computerhope.com/rmdirhlp.htm

@pauldoo

मैं अपने सीआई सर्वर जब मैं एक रिहाई का निर्माण है, जो हमेशा से किया जाना चाहिए करने के लिए जाना के रूप में मैं किसी भी आश्चर्य नहीं करना चाहती एक पूर्ण हटाना करना पसंद एक स्वच्छ राज्य से। लेकिन यह दोनों को संभालने में सक्षम होना चाहिए,

0

यह बहुत आम है और आम तौर पर किसी भी निर्माण प्रक्रिया किसी भी महत्वपूर्ण निर्माण करने से पहले एक 'साफ़' करने के लिए एक अच्छा अभ्यास है। यह आउटपुट को खराब करने के लिए पिछले निर्माण से किसी भी 'कलाकृतियों' को रोकता है।

एक साफ काम अनिवार्य रूप से आप काम कर रहे प्रतिलिपि को हटाकर कर रहे हैं।

0

@Brad बार्कर

साफ मतलब है सिर्फ निर्माण उत्पादों का सफाया करने के लिए।

कार्यशील प्रतिलिपि को हटाना अन्य सभी चीज़ों को भी हटा देता है (स्रोत और प्रोजेक्ट फ़ाइलें इत्यादि)।

आम तौर पर यह अच्छा होता है कि यदि आप निर्माण कर रहे हैं तो मशीन पूरी तरह से हटाए बिना काम कर सकती है, क्योंकि इससे यह पता चलता है कि एक सामान्य डेवलपर क्या करता है। अद्यतन के दौरान जो भी संघर्ष मिलता है वह आपके डेवलपर्स की अपेक्षाओं के बारे में एक प्रारंभिक चेतावनी है।


@jamie

औपचारिक रिलीज के लिए हाँ यह एक पूरी तरह से साफ चेकआउट करने के लिए बेहतर है। तो मुझे लगता है कि यह निर्माण के उद्देश्य पर निर्भर करता है।

2

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

2

यदि आप CC.NET के jira को चेक करते हैं तो सबवर्सन के लिए क्लीनकॉपी को लागू करने के लिए एक पैच चेक किया गया है जो वास्तव में आप चाहते हैं और बस अपने स्रोत नियंत्रण ब्लॉक के अंदर क्लीनकॉपी को सत्य के बराबर सेट करें जैसे कि टीएफएस एक के साथ।

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