2009-11-30 19 views
11

से एक वेबसाइट को तैनात करना मैं विचलन के लिए नया हूं और सोच रहा हूं कि आप उत्पादन से आगे बढ़ने के लिए कैसे काम करते हैं?सबवर्सन

मुझे लगता है कि मैं detailed here के रूप में रिलीज के लिए बनाई गई शाखाएं बनाने की अवधारणा को समझता हूं। लेकिन मैं वास्तव में शाखा को कैसे तैनात करूं?

आदर्श रूप से मैं सिर्फ एक नई वेबसाइट स्थापित कर सकता हूं और शाखाओं से फाइलों की प्रतिलिपि बना सकता हूं, लेकिन मैं किसी भी svn बाइंडिंग को उत्पादन में कॉपी करने के बारे में चिंतित हूं।

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

उत्तर

11

svn export

एक्सपोर्ट्स सभी तोड़फोड़ cruft

-2

आपको अपने निर्माण प्रणाली में कुछ प्रकार के 'तैनाती' लक्ष्य की आवश्यकता है जो .svn नामक फ़ोल्डर्स को अनदेखा करता है - जहां सभी सबवर्सन जानकारी रहता है।

4

छोड़कर फ़ाइलें आप एक svn export करना चाहते हैं। यह पूरे स्थान पर .svn निर्देशिकाओं के बिना कोड निर्यात करेगा।

4

ऐसा लगता है जैसे आप "रिलीज" शाखा का एसवीएन निर्यात करना चाहते हैं। विवरण के लिए the Subversion Book's Export documentation देखें।

3

जब तक आप अलग-अलग शाखाओं पर विकास नहीं करेंगे, तो मैं रिलीज को चिह्नित करने के लिए केवल tag का उपयोग करूंगा।

तब आप उस टैग के svn export करना चाहते हैं, ताकि आपके पास सभी अतिरिक्त .svn फ़ोल्डर्स न हों।

5

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

स्थानीय रूप से, हम सब कुछ एक साथ गोंद करने के लिए शक्तियों का उपयोग करते हैं और हमारे निर्माण करने के लिए कमांड लाइन से svn कमांड लाइन, एमएसबिल्ड और nUnit का संयोजन करते हैं।

+1

उत्कृष्ट बिंदु जॉन - जब तक कि यह एक बहुत ही सरल सेटअप नहीं है, वहां केवल एक साधारण "निर्यात" की आवश्यकता होने की संभावना है। "पुल" प्रकार के ऑपरेशन के अलावा आप वर्णन करते हैं (जहां स्क्रिप्ट एसवीएन निर्यात को ट्रिगर करती है), मैंने रिपोजिटरी में "तैनाती" स्क्रिप्ट भी देखी है। अर्थात। अद्यतन करने की प्रक्रिया 1) निर्यात प्रदर्शन करते हैं। 2) तैनाती स्क्रिप्ट चलाएं (जो आमतौर पर एक इंटरैक्टिव मोड में काम करता है)। एक मामले में, यह वास्तव में एक "तैनाती" पृष्ठ था। –

+0

यह एक अच्छा मुद्दा है, लेकिन यह वास्तव में एक सरल सेटअप है। इसलिए चीजों को अत्यधिक जटिल बनाने की जरूरत नहीं है। – plntxt

0

जिस तरह से मैं इसे संभालता हूं, मैं सबवर्सन से कोड की जांच करने, आर्टिफैक्ट बनाने की प्रक्रिया को स्वचालित करने के लिए एक निर्माण उपकरण (जैसे चींटी + ivy या maven) का उपयोग करता हूं, और फिर जहां भी आवश्यक हो वहां तैनात करता हूं।

मैं जावा पक्ष पर अधिक काम करता हूं, इसलिए .net टूल्स से परिचित नहीं, शायद आप nmaven का उपयोग कर सकते हैं?

0

पुराना धागा, लेकिन क्या अब यह थोड़ा बदल गया है क्योंकि एसवीएन के पास परियोजना की जड़ में केवल एक .svn फ़ाइल है? आप अपाचे को अनदेखा करने के लिए भी सेट कर सकते हैं। एसवीएन अनुरोध इस तरह से तैनात करने के लिए इसे और अधिक व्यवहार्य बनाते हैं?