2011-01-13 17 views
8

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

+1

क्या आपके लाइव वेब सर्वर में सबवर्जन सर्वर से कनेक्टिविटी है? – jgifford25

उत्तर

7

वेब सर्वर निर्देशिका में रिपॉजिटरी न बनाएं! यह आपके मुद्दे का पहला हिस्सा है।

आपका संग्रह कहीं भी रह सकता है, बस इसे वेबसर्वर की निर्देशिका में न रखें।

जब आप सेटअप अपाचे httpd (कि यदि आप क्या उपयोग कर रहे हैं), इस तरह फ़ोल्डरों .svn अनदेखी करने के लिए इसे सेट अप:

<DirectoryMatch \.svn> 
    Order allow,deny 
    Deny from all 
</DirectoryMatch> 

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

एक बार ऐसा करने के बाद, आप अपनी वेबसर्वर की निर्देशिका जा सकते हैं जहां आप इन फ़ाइलों को दिखाना चाहते हैं, और चेकआउट करें।

  1. एक सबवर्सन भंडार है कि अपने वेब सर्वर की निर्देशिका में है नहीं:

    आपको तीन कार्य होना चाहिए।

  2. एक कार्यशील निर्देशिका जिसमें आपकी वेबसाइट में आपकी सभी फाइलें हैं आपके वेबसर्वर की निर्देशिका में नहीं
  3. एक कार्यशील निर्देशिका जो आपके वेबसर्वर की निर्देशिका में है।

योजना यह है: आप उस कार्यशील निर्देशिका में परिवर्तन करते हैं जो आपके वेब सर्वर की निर्देशिका में नहीं है। आप यहां अपना परीक्षण कर सकते हैं, और यहां अपने बदलाव कर सकते हैं। आप यहां अपने सभी परीक्षण भी करते हैं।

एक बार जब आप सब कुछ से संतुष्ट हो जाते हैं, तो आप अपने वेबसर्वर की निर्देशिका में मौजूद सबवर्जन कार्य निर्देशिका में svn update कर सकते हैं। तो, आप अपना काम वेबसर्वर, परीक्षण के बाहर करते हैं, और फिर वेबसर्वर निर्देशिका में svn update करें।

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

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

+0

बहुत धन्यवाद मुझे लगता है कि आपने मेरे प्रश्न का उत्तर दिया है, लेकिन मुझे यह सुनिश्चित करने के लिए अभी भी मेरे अंत में svn के बारे में कुछ और शोध करना है कि मैं इसे समझता हूं। मैं एक त्वरित आरेख के साथ आया, क्या आप इसे देख सकते हैं और देख सकते हैं कि मैं आपको सही तरीके से समझ रहा हूं या नहीं? http://danramosd.com/svn_diagram.png – dan

+0

क्षमा करें, मुझे आरेख नहीं दिखाई दिया। [सबवर्जन बुक] (http://svnbook.red-bean.com/en/1.5/index.html) में पहले दो अध्याय बताते हैं कि यह सब कैसे काम करता है। यह मैंने कभी देखा है सबसे अच्छा ओपन सोर्स मैनुअल में से एक है। चूंकि सबवर्सन मुफ्त है, इसे डाउनलोड करें और पुस्तक में उदाहरणों का पालन करें। एक सप्ताह में, आपको एक उत्कृष्ट विचार मिलेगा कि सबवर्सन कैसे काम करता है। मैं अपनी परियोजनाओं के लिए गिट और सबवर्जन का उपयोग करता हूं, लेकिन विभिन्न कारणों से सबवर्सन पसंद करता हूं। –

+0

http अनुरोधों से .svn फ़ोल्डरों को अवरुद्ध करने के लिए अच्छी युक्ति। –

1

मैं सेटअप अपने SVN चेकआउट में एक संरचना (अपने स्थानीय बॉक्स पर), जो, फ़ाइलें आप स्टोर करने के लिए (और जरूरी सर्वर की संरचना से मेल नहीं है) से मेल खाता है, उदाहरण के लिए होगा:

my-project 
my-project/docs/README.txt  (any documentation you want to write) 
my-project/www/index.html (etc) 

और शीघ्र। फिर,

(1) आप सर्वर पर आदेशों को चलाने के लिए पहुँच है, तो मैं लॉगिन होता है और ऐसा उदाहरण के लिए:

cd /domain.com 
rm -rf www 
svn co https://svn.myserver.com/my-project/www www 

(2) अन्यथा, मैं बाहर फ़ाइलें अपने स्थानीय मशीन पर जाँच करेगा और सर्वर पर उन्हें ftp।

विकल्प (1) बेहतर है लेकिन विकल्प के साथ भी (2) आपके वर्तमान सेटअप पर आपके पास फायदे हैं। यदि आप सर्वर पर फ़ाइलों को बदलते हैं, तो आप पूरी निर्देशिका को अपने स्थानीय बॉक्स में वापस एक नई निर्देशिका में ftp कर सकते हैं, फिर फ़ाइलों को उपversण सर्वर पर "प्रतिबद्ध" कर सकते हैं। सबवर्सन (.svn निर्देशिकाओं के साथ, जिन्हें आपको सर्वर से कॉपी करने की आवश्यकता है) पता चलेगा कि आपने कौन सी फाइलें बदल दी हैं।

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