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