2010-09-01 15 views
13

मेरे पास क्लाइंट का Django प्रोजेक्ट है जो मैं संस्करण नियंत्रण के लिए Mercurial का उपयोग करके स्थानीय रूप से विकसित कर रहा हूं। मैंने अपने स्थानीय रिमोटरी को अपने व्यक्तिगत रिमोट सर्वर (जहां मैं अपनी सभी परियोजनाओं को रखता हूं) पर धक्का देता हूं और फिर जब मैं इसे तैनात करने के लिए आता हूं (जो भी वेब सर्वर पर) मैंने अपने व्यक्तिगत सर्वर से वहां शोक को क्लोन किया।एक निर्देशिका में एक Mercurial भंडार क्लोन कैसे करता है जो पहले से मौजूद है?

यह अधिकांश सर्वरों पर ठीक काम करता है (जहां मेरा कुल नियंत्रण है) लेकिन मेरे पास कुछ परियोजनाएं हैं जहां मैं वेबफैक्शन पर तैनात कर रहा हूं। वेबफैक्शन बहुत अच्छा है, लेकिन इसके सेटअप के साथ थोड़ा असामान्य है, क्योंकि मुझे पहले अपने नियंत्रण कक्ष के माध्यम से Django प्रोजेक्ट को 'एप्लिकेशन' के रूप में घोषित करने की आवश्यकता है। यह कुछ चीजें स्वचालित रूप से बनाता है, जैसे 'apache2', 'myproject', आदि फ़ोल्डर। यह वही फ़ोल्डर है जहां मैं अपने व्यक्तिगत रिमोट सर्वर से भंडार क्लोन करना चाहता हूं। सामान्य एचजी क्लोन कमांड करना सिर्फ काम नहीं करता है क्योंकि यह कहता है कि गंतव्य फ़ोल्डर पहले से मौजूद है। वास्तव में इस फ़ोल्डर की सामग्री के बारे में मैं इतना कुछ नहीं कर सकता, इसलिए मुझे इसके आसपास काम करने की ज़रूरत है।

मैं Mercurial में एक विशेषज्ञ नहीं हूं और एकमात्र तरीका यह है कि मैं इसे काम करने के लिए प्रतीत होता हूं इसे किसी अन्य फ़ोल्डर में क्लोन कर देता है और उसके बाद सभी सामग्री (.hg सहित) को वास्तविक फ़ोल्डर में ले जाया जाता है। हालांकि यह मूर्खतापूर्ण लगता है ...

मैं Mercurial v1.6.2 (easy_install के माध्यम से स्थापित) का उपयोग कर रहा हूं। क्या कोई इस पर कुछ प्रकाश साझा कर सकता है?

बहुत धन्यवाद।

+0

आप एकमात्र ऐसा नहीं हैं जो कि इस सुविधा में फंस गया है: http://mercurial.selenic.com/bts/issue1462 – msw

उत्तर

1

मुख्य रूप से, यह लगता है कि आप जो निश्चित रूप से इसकी डिजाइन लक्ष्य नहीं है एक अधिष्ठापन प्रबंधक के रूप में मर्क्युरियल उपयोग करने के लिए प्रयास कर रहे हों जैसे।

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

+1

असल में, बहुत से लोग ऐसा करते हैं और यह बहुत बढ़िया काम करता है। आमतौर पर, कोई एक उत्पादन सर्वर को 'पुश' करता है जिसमें 'चेंज ग्रुप हुक' होता है जो स्वचालित 'अपडेट' करता है। यहां ढेर ओवरफ्लो में बहुत सारे प्रश्न हैं जहां इस तरह के एक सेटअप की सिफारिश की जाती है। एक 'उत्पादन' टैग का उपयोग करना या ऑटो-अपडेट के लिए लक्ष्य के रूप में पसंद करना बहुत हल्का काम करता है। –

+0

@ Ry4an: यहां कम से कम एक काउंटर तर्क है जो उन मुद्दों को बुलाता है जो मुझसे चिंतित थे। यह "सही" नहीं है, लेकिन यह एकमात्र प्रासंगिक था कि मेरी खोज बढ़ गई और मुझे दूसरी ओर से एक प्रतिनिधि को देखना अच्छा लगेगा। यदि आप एक प्रतिबद्ध हुक का उपयोग कर रहे हैं, तो ऐसा लगता है कि एक निहित "इंस्टॉल" स्क्रिप्ट होना चाहिए जो कि एचजी से ट्रिगर किया गया है। मैंने कभी सीधा तैनाती नहीं की है, इसलिए मैं जानना चाहता हूं कि "नाव" क्या मैंने याद किया है। http://stackoverflow.com/questions/2361708/using-hg-repository-as-web-site – msw

+0

फिर अपने प्रोजेक्ट को देखने के बाद, मैं एमएसडब्ल्यू के साथ सहमत होना होगा।मैं यहाँ जटिल चीजों से अधिक हूं, ऐसा लगता है कि मुझे अपने वास्तविक Django प्रोजेक्ट फ़ोल्डर को नियंत्रित करने वाला संस्करण होना चाहिए और इसके चारों ओर सामान नहीं होना चाहिए। इस स्थिति में, यह समझ में आता है। धन्यवाद। – littlejim84

10

आप केवल .hg फ़ोल्डर कॉपी कर सकते हैं, फिर वापस या टिप पर अपडेट कर सकते हैं। उदा .:

cp -a src/.hg dest/ 
cd dest 
hg up -C 
1

आप या तो इस तथ्य के बाद फ़ोल्डर को स्थानांतरित कर सकते हैं, या आप इसे केवल सिमलिंक बना सकते हैं। मेरी वेबफैक्शन निर्देशिका वास्तव में सिम्लिंक है, इसलिए मुझे पता है कि यह ठीक काम करता है।

21

केवल .hg dir की प्रतिलिपि बनाना निश्चित रूप से काम करता है, लेकिन आप hg init और फिर hg pull http://remote/repo भी कर सकते हैं। एक रेपो जिसे अभी इंटिलाइज्ड किया गया है केवल 000000000000000 परिवर्तन है, इसलिए आप "असंबद्ध रिपोज़" चेतावनी के बिना किसी भी रेपो से खींच सकते हैं। यह अनिवार्य रूप से मैन्युअल init के साथ hg clone --pull जैसा ही है।

+2

धन्यवाद! आपने मुझे एक बहुत अच्छा एचजी टिप सिखाया :-) +1 –

+0

मुझे खींचने के बाद 'एचजी अपडेट' करना पड़ा। मैंने एक विशिष्ट संशोधन '-आर एक्स' के साथ खींच लिया – juanmirocks

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