2010-03-02 16 views
48

मैं Mercurial grok करने की कोशिश कर रहा हूँ और उम्मीद है कि मैं बस उलझन में हूँ!मैं इस परिवर्तन को अपने 'मुख्य' Mercurial भंडार में क्यों नहीं धक्का दे सकता?

मेरे पास एक रिपोजिटरी ('मुख्य') है जिसे मैंने अपनी मशीन पर क्लोन किया है ('क्लोन')। दोनों एक दूसरे के साथ पूरी तरह से सिंक में थे।

मैंने नामित शाखाओं के साथ खेलने का फैसला किया, अगली बार जब मैंने अपने 'क्लोन' पर किया तो मैंने इसे 'केस 1212' के शाखा नाम के तहत किया और ऐसा लगता है कि मेरे क्लोन पर सही ढंग से प्रतिबद्धता का सामना करना पड़ता है, लेकिन मैं नहीं कर सकता इन परिवर्तनों को वापस 'मुख्य' पर दबाएं। दी गई त्रुटि है:

abort: push creates new remote branch 'case1212'! 

... और यह सुझाव देता है कि मुझे पहले विलय करने की आवश्यकता हो सकती है? मुझे उस 'क्लोन' भंडार पर क्या विलय करना चाहिए? जब मैं 'मुख्य' से खींचने की कोशिश करता हूं, तो कोई बदलाव नहीं होता है।

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

उत्तर

50

Mercurial का डिफ़ॉल्ट व्यवहार आपको दूरस्थ शाखाएं बनाने से रोकता है। यदि आप ऐसा करना चाहते हैं, तो आपको बल-पुश करने की आवश्यकता है।

आपके द्वारा दिखाए गए विंडो में मेनू सिंक्रनाइज़ करें, बल धक्का के लिए एक विकल्प है।

+0

स्थानीय रूप से दूरस्थ परिवर्तनों को मर्ज करने और फिर धक्का देने का सबसे अच्छा अभ्यास नहीं है? – gcb

+4

@gcb कभी-कभी आप वास्तव में सर्वर रिपोजिटरी पर एक नई शाखा चाहते हैं ताकि यह दूसरों के देखने और उपयोग के लिए उपलब्ध हो। लेकिन अगर यह सिर्फ एक अलग सिर है क्योंकि आपने स्थानीय रूप से दूसरों के परिवर्तनों को विलय नहीं किया है, तो हाँ, आपको पुश से पहले विलय करना चाहिए और फिर आपको मजबूर करने की आवश्यकता नहीं है। – Rory

19

यह आपको चेतावनी देता है कि आपका धक्का नए रिमोट हेड (और इस मामले में शाखाओं) बना देगा। यदि आप इसके साथ ठीक हैं, और ऐसा लगता है कि आप हैं, तो आप push -f के साथ धक्का दे सकते हैं। इसलिए यदि आपको लगता है कि case1212 शाखा चाहता था वापस मुख्य सर्वर से जाना नहीं करने के लिए आप hg push -r default कर सकता है कि और फिर आप इस चेतावनी को नहीं देखना चाहते और case1212 नहीं भेज

यह चेक वहाँ में है।

एक बार जब आप इसे केस 1212 के लिए कर चुके हैं तो आपको फिर से चेतावनी दिखाई नहीं देगी क्योंकि केस 1212 पहले से ही वहां होगा।

Mercurial के नए संस्करण उस मामले में थोड़ा कम डरावना ध्वनि चेतावनी देते हैं जहां नया सिर एक नई शाखा है।

25

टोर्टोइज़ के पास अब एक विकल्प Push new branch है जो Force pull or push से अधिक सुरक्षित हो सकता है। कमांड लाइन टूल में ध्वज - नई शाखा है।

अद्यतन: नया कछुआ इंटरफ़ेस इसे ढूंढना थोड़ा कठिन बनाता है। सिंक्रनाइज़ दृश्य पर स्विच करें, फिर विकल्प क्लिक करें और एक नई शाखा के पुश को अनुमति दें चुनें।

+9

यह करता है और मैं इसका अच्छा उपयोग करता हूं! मुझे स्थायी रूप से बल धक्का छोड़ने से नफरत है, बस हर समय रूट के रूप में लिनक्स चलाने की तरह लगता है। –

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