mercurial क्या मैं एक शाखा को 'धक्का नहीं जा रहा' के रूप में चिह्नित कर सकता हूं?




branch push (3)

अद्यतन करें:

मौसमी 2.1 ने hg phase कमांड पेश किया जो उपयोगकर्ताओं को नियंत्रित करता है कि कौन से परिवर्तन सेट दूरस्थ रिमोटरीज के साथ दिए जाते हैं। @ मार्टिनजईस्लर इस प्रश्न का उत्तर इस विवरण का विवरण देते हैं।

मूल उत्तर:

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

नामांकित शाखा का उपयोग किए बिना Mercurial में कई शाखाएं हैं I सिर्फ एक विधि खोजें जो आपकी आवश्यकताओं के अनुरूप है

आगे पढ़ें: http://stevelosh.com/blog/2009/08/a-guide-to-branching-in-mercurial/

मैं मर्क्यूरिअल में नामांकित शाखाओं का उपयोग करता हूं

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

इसे बनाने के बाद, हर बार जब मैं एक धक्का करता हूं, तो मुझे बताया जाता है कि मैंने एक नई शाखा को जोड़ दिया है और मुझे न्यू --new-branch फ्लैग का उपयोग करना होगा। इस बिंदु पर hg push -b default (या जो शाखा मैं धक्का दे रहा हूँ) ठीक काम करता है लेकिन यह कष्टप्रद है क्या एचजी को देकर संदेश को दबाने का कोई तरीका है कि मुझे उस शाखा को आगे बढ़ाने में कोई दिलचस्पी नहीं है?


मर्कुरियल 2.1 से शुरू (1 फरवरी को एक सप्ताह में जारी किया जाना), आप अपने परिवर्तनों को गुप्त रख सकते हैं कि उन्हें किसी अन्य रिपॉजिटरी में धकेल दिया जाए। ऐसा करने के लिए आप नए hg phase आदेश का उपयोग करते हैं:

$ hg phase --force --secret .

इस secret कार्य में वर्तमान कार्यशील निर्देशिका मूल संशोधन ( . ) चिह्नित करें सीक्रेट बदलाव आपके रिपॉजिटरी में स्थानीय हैं: वे धक्का देकर खड़े नहीं किए गए धक्का अब इस तरह दिखता है:

$ hg push
pushing to /home/mg/tmp/repo
searching for changes
no changes to push but 2 secret changesets

Mercurial के पुराने संस्करणों में कोई समान तंत्र नहीं है आपकी सबसे अच्छी शर्त यह है कि उन परिवर्तनों के लिए एक स्थानीय क्लोन बनाएं जिन्हें आप आगे नहीं बढ़ाना चाहते।


संबंधित चरणों के ऊपर उत्कृष्ट उत्तर के अलावा, आप 'डिफ़ॉल्ट-पथ' (आपके .hgrc के [पथ] अनुभाग में भी निर्दिष्ट कर सकते हैं) स्थानीय रिपॉजिटरी का उल्लेख करने के लिए:

[paths]
default = ...
default-push = .

इससे सभी आउटगोइंग परिवर्तनों की तुलना किसी निर्दिष्ट रिपॉज़िटरी से की जाएगी। इस स्थिति में, अपने स्थानीय रिपॉजिटरी में आउटगोइंग परिवर्तनों की तुलना आपके स्थानीय रिपॉजिटरी परिणामों में करने के लिए कुछ भी नहीं है

आप मुख्य रिपॉजिटरी से अभी भी पुल / अपडेट / मर्ज कर सकते हैं, लेकिन कोई पुश कभी भी उस मुख्य रिपॉजिटरी में वापस नहीं भेजेगा

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







dvcs