मर्क्यूरियल में मर्ज कैसे करें?


85

मैं एक मर्ज से उकता गया। मैं फिर से कोशिश करना चाहूंगा।
क्या यह प्रतिबद्ध होने से पहले मर्ज को वापस करने का एक तरीका है?

hg revertमैं जो चाहता हूं, वह नहीं करता, यह केवल फाइलों के पाठ को ही प्रभावित करता है। मर्क्यूरियल ने विलय के मेरे दूसरे प्रयास को निरस्त कर दिया और मूल मर्ज की शिकायत की जो अभी भी अप्राप्त है।

क्या hg mergeकमांड के बाद मर्ज को पूर्ववत करने का एक तरीका है लेकिन इससे पहले कि यह प्रतिबद्ध हो?


जवाबों:


106

hg update -C <one of the two merge changesets>


सरल, कुशल और, मुझे लगता है, यह करने का सबसे अच्छा तरीका है! : डी
एरिक-कार्ल

@JonL। - हां, --cleanएक पर्यायवाची है -C। मुझे यकीन नहीं है कि कौन से बदलाव .का उल्लेख होगा, लेकिन यह हमेशा दो विलय वाले परिवर्तनों में से एक होगा।
सर्वव्यापी

3
@ सामान्य, .मर्ज शुरू करने से पहले आप जो भी संशोधन कर रहे थे , उस पर सफाई साफ होनी चाहिए। इसलिए यदि आप r42 में थे, तो r43 के साथ विलय करने का प्रयास किया गया, असफल, साफ किया गया, आप एक प्राचीन r42 पर वापस आ जाएंगे।
जॉन एल।

2
hg update --cleanकाम करता है, जैसा .कि अंतर्निहित डिफ़ॉल्ट लगता है - हालांकि यह स्पष्ट रूप से प्रलेखित नहीं है।
जोएल पुर्रा

@JoelPurra: .किसी मर्ज के संदर्भ में अर्थ अस्पष्ट है।
सर्वार्थसिद्ध

39

आपके द्वारा किए जाने के बाद hg merge, लेकिन इससे पहले hg commit, आपकी कार्यशील प्रति में दो माता-पिता होते हैं: पहला अभिभावक वह बदलाव है जिसे आपने मर्ज करने से पहले अपडेट किया था और दूसरा अभिभावक वह बदलाव है जिसे आप मर्ज कर रहे हैं। hg mergeजब तक आपकी कामकाजी प्रति में दो माता-पिता नहीं होंगे, तब तक मर्क्यूरियल आपको फिर से नहीं करने देगा ।

आगे बढ़ने के लिए आपके पास दो विकल्प हैं:

  1. यदि आप मर्ज को समाप्त करना चाहते हैं और वापस उसी स्थान पर पहुंचना चाहते हैं जहां आपने शुरुआत की थी, तो करें

    hg update -C .
    

    यह पहली माता-पिता से मेल खाने के लिए कार्यशील प्रतिलिपि को अपडेट करेगा: .हमेशा काम करने वाले प्रतिलिपि के पहले माता-पिता को दर्शाता है।

  2. यदि आप कुछ फ़ाइलों को फिर से मर्ज करना चाहते हैं तो करें

    hg resolve fileA fileB
    

    यह मर्ज टूल को फिर से लॉन्च करेगा जैसे आपने किया था hg merge। यदि आप hg mergeअपने मर्ज उपकरण बुरी तरह से कॉन्फ़िगर किए गए हैं, तो यह पता लगाने के लिए कि रिज़ॉल्यूशन कमांड अच्छा है : कॉन्फ़िगरेशन को ठीक करें और चलाएं hg resolve --allhg resolveजब तक आप मर्ज से संतुष्ट नहीं होते तब तक आप जितनी बार चाहें भाग सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.