2010-08-01 6 views
5

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

हालांकि कभी-कभी एक डेवलपर समस्या होती है ... कभी-कभी डेवलपर देर से काम करेगा, और आधी रात के बाद भी svn में बदलाव की जांच करेगा। जब ऐसा होता है, तो यह संभव है कि कुछ दैनिक निर्माण दास svn प्रतिबद्ध संसाधित होने से पहले अपने 'svn checkout' करेंगे, जबकि अन्य निर्माण दास प्रतिबद्ध होने के बाद ऐसा करेंगे। जब ऐसा होता है, तो हम विभिन्न प्लेटफार्मों पर बनाए गए विभिन्न संशोधनों के साथ समाप्त होते हैं ... उदा। मैक बिल्ड एसवीएन संशोधन 5555 का निर्माण कर सकता है, जबकि विंडोज़ बिल्ड एसवीएन संशोधन 5556 के निर्माण के रूप में समाप्त होता है। यह बुरा है, क्योंकि हम चाहते हैं कि सभी दिन एक ही दिन के लिए उसी कोडबेस पर आधारित हों।

मुझे लगता है कि इससे बचने के लिए एक तरीका डेवलपर्स को 11:30 अपराह्न और 12:30 बजे के बीच svn करने के लिए प्रतिबद्ध करना है, लेकिन मैं एक और अधिक सुरुचिपूर्ण समाधान पसंद करूंगा जो डेवलपर्स व्यवहार पर भरोसा नहीं करता है। क्या कोई है? विशेष रूप से, अगर मौजूदा दिन के आधी रात को वर्तमान में मौजूद कोड के संशोधन की जांच करने के लिए हडसन को बताने का कोई तरीका है (उदाहरण के लिए "svn co -r {" the-current-date "}") हेड, मुझे लगता है कि चाल चल सकती है।

क्या इस समस्या को संभालने का कोई आम तरीका है?

+0

1am पर निर्माण शुरू करें? :) –

+0

लॉल, वह एक अच्छा था। मुझे उम्मीद है कि उन्हें कोई समस्या नहीं है, ताकि डेवलपर्स 1 बजे तक या बाद में भी हों। ;) –

उत्तर

3

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

संपादित करें: वर्तमान में निम्नलिखित हडसन (1.376) द्वारा समर्थित नहीं है

मैं भी एक अच्छा svn book पाया। यह बताता है कि आप घुंघराले ब्रेसिज़ में एक तिथि के साथ संशोधन को प्रतिस्थापित कर सकते हैं। तो आप अपनी नौकरी विन्यास में <svn-url>@{00:00} आज़मा सकते हैं।

+0

@ {00:00} चाल साफ है; दुर्भाग्यवश यह जावा आधारित एसवीएन क्लाइंट के माध्यम से काम नहीं करता है जो हडसन के भीतर एम्बेडेड है। एक अन्य विचार यह है कि यदि आपका भंडार svn का उपयोग करता है: बाहरी तो मुझे विश्वास है कि बाहरी भी गलत संशोधन के साथ लाया जा सकता है। – jdkoftinoff

+0

मैंने अभी भी यह देखा है। :( –

0

एक और विचार मैं उपयोगी पाया दास के बीच एक ही स्रोत निर्देशिका का हिस्सा है और एक अप svn आदेश है, इस SVN अपडेट के समय में कटौती, और भी तुल्यकालन के दर्द से आप को छोड़ दें।

मैं लिनक्स मशीनों पर एनएफएस का उपयोग करता हूं, एसएसएफएस भी काम करेगा।