2010-08-02 7 views
26

मैंएचजी: मैं नई बनाई गई शाखा को वापस केंद्रीय भंडार में कैसे धक्का दूं?

के माध्यम से centeral भंडार क्लोन
hg clone my_project my_project_1 

तो एक नव निर्मित रेपो मैं एक नई शाखा

hg branch v1 

के रूप में चिह्नित का उपयोग करने जा जबकि नए क्लोन अंदर मैं

hg ci -m "branch created" 

जारी करने के बाद लेकिन जब मैंने मूल भंडार में परिवर्तनों को वापस धक्का देने की कोशिश की तो मैंने से क्लोन किया, मुझे यह त्रुटि मिली:

abort: push creates new remote branches: v1! 

मैं शाखा को मूल भंडार में कैसे धक्का दूं? क्या मैं शाखा को मूल रेपो में धक्का देने की कोशिश करके सही काम कर रहा हूं? मैं बस एक केंद्रीकृत भंडार रखना चाहता हूं जिसमें शाखाएं होंगी और जिनसे मैं शाखाओं की जांच कर पाऊंगा। इस समस्या से निपटने का सबसे अच्छा तरीका क्या है? धन्यवाद।

+0

वितरित संस्करण नियंत्रण के साथ आप (आमतौर पर) केवल एक शाखा नहीं, सबकुछ जांचते हैं। इसके अलावा: "एक केंद्रीकृत भंडार" संभव है लेकिन रिपोजिटरी की जांच करने वाले प्रत्येक डेवलपर के पास केंद्रीय भंडार का क्लोन है। –

उत्तर

52

यह आपके द्वारा उपयोग किए जा रहे Mercurial के संस्करण पर निर्भर करता है। रिमोट रिपोजिटरी (जो आमतौर पर ठीक है) में एक नई शाखा के निर्माण को मजबूर करने के लिए कमांड hg push -f ... या hg push --force ... होता था।

हालांकि, -f का उपयोग कर भी आप दूरस्थ भंडार (आमतौर पर नहीं OK) में नए सिर बनाने की अनुमति देता है, तो मर्क्युरियल के वर्तमान संस्करण (1.6 और ऊपर) है कि आप एक शाखा बनाने की अनुमति देता hg push करने के लिए एक --new-branch विकल्प होता है , लेकिन नहीं, एक नया सिर बनाने इतना आदेश है:

hg push --new-branch 

तुम भी धक्का सिर्फ शाखा है कि आप -b ध्वज के साथ काम कर रहे हैं करने के लिए सीमित कर सकते हैं, तो:

hg push --new-branch -b v1 
+2

यह गिट के विपरीत दिखता है, आपको धक्का देने में सक्षम होने के लिए एक प्रतिबद्धता बनाना है: 'hg ci -m" एक शाखा बनाना "' – NoBugs

+0

@NoBugs प्रश्न में, ओपी ने कहा कि उन्होंने पहले ही ऐसा किया है। –

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