2011-01-20 15 views
5

मेरे पास केंद्रीय मर्कुरियल रिपोजिटरी है जिसमें एक एसवीएन रिपोजिटरी से hgsubversion का उपयोग करके क्लोन किया गया इतिहास है। मैंने एसवीएन रिपोजिटरी में किए गए अतिरिक्त कामों को खींच लिया है क्योंकि मूल एचजी रेपो क्लोन किया गया था; ये वर्तमान में डिफ़ॉल्ट शाखा में हैं।Mercurial का उपयोग करके, मैं डिफ़ॉल्ट रूप से नामित शाखा में परिवर्तन कैसे प्राप्त करूं?

मेरे पास एक नाम की शाखा भी है। मैंने इस शाखा को क्लोन किया है (hg clone -b mybranch का उपयोग करके) अपने स्थानीय सिस्टम में। अब मैं केवल उन परिवर्तनों को पकड़ना चाहता हूं जो डिफ़ॉल्ट रूप से मौजूद हैं और उन्हें मेरी नामित शाखा में उपलब्ध कराएं। मुझे ऐसा करने का स्पष्ट तरीका रेपो पर hg update mybranch करना है, फिर hg merge default और प्रतिबद्ध करें। यह खतरनाक प्रतीत होता है - अगर मैं पूरा होने के बाद डिफ़ॉल्ट रूप से अपडेट करना भूल जाता हूं, तो एसवीएन से सभी भावी खींचें माइब्रैंच में परिवर्तन खींचेंगी।

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

यहां सही जवाब क्या है? इसे साझा रेपो पर करें और सावधान रहें? सब कुछ क्लोन करें और स्थानीय रूप से शाखाओं का प्रबंधन करें? या क्या कोई आसान समाधान है जो मुझे याद आ रहा है?

+1

विलय बिल्कुल सही लगता है, मुझे आपकी समस्या वास्तव में नहीं मिलती है। * hgsubversion * एसवीएन शाखाओं के बारे में जागरूक प्रतीत होता है, इसलिए जब आप खींचते हैं, तो इसे * * * * * * * एसवीएन-माइब्रैंच * में * एसवीएन-ट्रंक * आपके * mybranch * शाखा में बदलना चाहिए। यदि आप * mybranch * पर विलय करते हैं और रहते हैं, तो क्या * mybranch * की नोक वास्तव में बदलती है यदि रिमोट साइड ट्रंक-केवल बदलता है? खींचना आपकी कामकाजी प्रति के संशोधन से स्वतंत्र होना चाहिए। –

+0

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

उत्तर

6

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

+1

यह एक अच्छा मुद्दा है, और यह वही जवाब है जो मैं वैसे भी झुका रहा था। मैं बस यह सुनिश्चित करना चाहता था कि एचजी की कुछ विशेषता नहीं थी, और ऐसा लगता है कि मैंने पोस्ट किए गए अधिकांश प्रश्नों के लिए फायरहोज जैसी प्रतिक्रिया दर दी है। –

1

इसे साझा रेपो में करें और सावधान रहें। या पूरे साझा रेपो को क्लोन करें, वहां मर्ज करें, और फिर शाखा-केवल क्लोन पर जाएं।

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