2011-01-02 17 views
8

में साझा परियोजनाओं को सही ढंग से कैसे प्रबंधित करें, मान लें कि मेरे पास टीमसिटी के भीतर दो "परियोजनाएं" हैं, जो दो वेबसाइटें हैं, प्रत्येक एक साझा लाइब्रेरी का उपयोग करती है जो वेबसाइट के svn पथ के भीतर नहीं है।टीमसिटी

वेबसाइट A:: SVN: // जड़/वेब/websitea (साझा का उपयोग करता है पुस्तकालय क)

वेबसाइट B: SVN: // जड़/वेब/websiteb (यहाँ SVN संरचना इसे और अधिक स्पष्ट करना है का उपयोग करता है साझा लाइब्रेरी ख)

साझा लाइब्रेरी एक: SVN: // जड़/साझा/Liba

साझा लाइब्रेरी बी: ​​SVN: // जड़/साझा/libb

मैं कैसे सेटअप एक teamcity परियोजना होगा वेबसाइट के लिए एक? अभी मैं इसे svn: // root पर इंगित करता हूं, लेकिन यह वेबसाइट को बी या साझा लाइब्रेरी बी बदल दिया गया था, भले ही यह एक बिल्ड को ट्रिगर करे, जो सही नहीं है। यदि मुझे svn: // root/web/websitea में बदलाव होता है या svn: // root/shared/liba में कोई परिवर्तन होता है, तो मुझे केवल एक बिल्ड को ट्रिगर करने का एक तरीका है।

मैंने उसी परियोजना के भीतर दो वीसीएस जड़ें स्थापित करने की कोशिश की जो उपरोक्त दो svn पथों को इंगित करता है, हालांकि प्रत्येक वीसीएस रूट के लिए एक कार्यशील निर्देशिका सेट करने का कोई तरीका नहीं प्रतीत होता है। इस कारण से, यह केवल दो एसवीएन पथों की सामग्री को सीधे अपनी उचित निर्देशिका में डालने की बजाय मेरी बिल्ड निर्देशिका की जड़ में कॉपी कर रहा है (सी: \ बिल्ड \ वेब \ वेबसाइट ए & सी: \ Build \ Shared \ LibA)।

उत्तर

13

टीमसिटी की चेकआउट नियम कार्यक्षमता आपके द्वारा वर्णित सेटअप का समर्थन करने में सक्षम है। मेरी टीम ऐसा कुछ करने के लिए करती है जो आप करने की कोशिश कर रहे हैं।

सबसे पहले, एक एकल एसवीएन रूट स्थापित करें। इस रूट का यूआरएल कुछ ऐसा होगा:

svn://root/ 

फिर निम्नलिखित चेकआउट नियम सेट अप करें।

प्रोजेक्ट ए के लिए:

+:web/websitea=>/web/websitea 
+:shared/liba=>/shared/liba 

परियोजना बी के लिए:

+:web/websiteb=>/web/websiteb 
+:shared/libb=>/shared/libb 

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

+0

यही वह है जिसे मैं ढूंढ रहा था, धन्यवाद! – Justin

+2

पथ मैपिंग्स (=>) इस मामले में पूरी तरह से जरूरी नहीं हैं क्योंकि पथ समान हैं और उनके बिना टीमसिटी एक ही नाम के पथों का उपयोग करने के लिए डिफ़ॉल्ट होगा। विकास के दौरान कार्यरत निर्देशिकाओं में रिपॉजिटरीज़ को चेक करते समय अलग-अलग पथ चुनने के लिए अलग-अलग नामों के साथ पथों पर नक्शा लगाने के लिए उपयोगी हो सकता है (इस मामले में परियोजना संदर्भ संबंधित सापेक्ष पथ हो सकते हैं जो संबंधित सापेक्ष स्थानों से मेल नहीं खाते हैं स्रोत नियंत्रण भंडार में पथ)। देखें: http://confluence.jetbrains.net/display/TCD6/VCS+ चेकआउट + नियम – rohancragg

6

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

+:web/websitea 
+:share/liba