2010-03-09 18 views
6

मान लीजिए कि:कार्यशील निर्देशिका को प्रभावित किए बिना 'hg merge' कैसे करें?

  • मैं एक रेपो MyRepo कहा जाता है।
  • मेरे पास मेरी कार्यशील निर्देशिका में असामान्य परिवर्तन हैं।
  • मैं रिपो 1 से एक पुल करता हूं और यह माइरिपो
  • में एक शाखा बनाता है। मैं अपने रेपो में जो कुछ भी पहले से खींच चुका हूं उसके साथ एक विलय करना चाहता हूं।

जैसा कि here वर्णित है, विलय प्रक्रिया कार्यशील निर्देशिका की स्थिति को बदलती है।

मेरे परिदृश्य में, मैं अपने कामकाजी निर्देशिका में असामान्य परिवर्तनों को खोना नहीं चाहता क्योंकि उस बिंदु पर, मुझे माइरिपो की स्थिति बदलने में रूचि है; मेरी कामकाजी निर्देशिका की स्थिति नहीं।

क्या विलय प्रक्रिया को पार करने का कोई तरीका है, जिसमें मेरी कार्यशील निर्देशिका की सामग्री को प्रभावित किए बिना मैन्युअल रूप से संघर्ष हल करना शामिल है? क्या यह प्रक्रिया केवल अस्थायी फ़ाइलों में ही की जा सकती है? या क्या मुझे अपने परिवर्तनों को ढंकना चाहिए, विलय करना चाहिए और फिर मेरे कामकाजी डीआईआर को राज्य में बहाल करने से पहले यह विलय से पहले था?

उत्तर

4

shelve या attic एक्सटेंशन का उपयोग अस्थायी रूप से विलय करते समय अपने परिवर्तनों को छेड़छाड़ करने के लिए करें।

+0

आपके लिंक टूटे हैं। –

1

आप अपने भंडार को अपने नवीनतम चेकइन में क्लोन कर सकते हैं, क्लोन के साथ परिवर्तनों को मर्ज कर सकते हैं, प्रतिबद्ध कर सकते हैं और फिर अपने क्लोन किए गए रिपॉजिटरी से नए बदलाव को अपने वर्तमान में खींच सकते हैं।

3

आप ऐसा नहीं कर सकते हैं। जैसा कि प्रलेखन कहता है, वास्तव में एक काम कर रहे पेड़ ऑपरेशन विलय है। परिणाम का परीक्षण किए बिना संघर्ष को हल करना पागल है। या तो शेल्व करें या परिवर्तन करें और फिर मर्ज करें। यदि आप नहीं चाहते कि प्रतिबद्धता कहीं भी दिखाई दे, तो आप परिवर्तन कर सकते हैं, पिछले संशोधन में अपडेट कर सकते हैं, नई शाखा मर्ज कर सकते हैं, अस्थायी रूप से प्रतिबद्ध पैच लागू कर सकते हैं और उस अस्थायी शाखा को पट्टी कर सकते हैं।

+0

शेल्विंग के लिए +1। यह आपके प्रगतिशील परिवर्तनों को प्रभावित किए बिना विलय करने के लिए आगे बढ़ने का सबसे सरल तरीका लगता है। – gavinb

+0

धन्यवाद @ लुकास लालंस्की, मुझे एक ही समस्या है। जब आपने कहा था "या तो शेल्फ या बदलाव करें और फिर मर्ज करें", "शेल्व" से आपका मतलब था "शेल्फ एक्सटेंशन का उपयोग करें"? या कुछ और? –

+0

हां, मेरा मतलब था शेल्व एक्सटेंशन का उपयोग करना। –

0

मैं Mercurial के लिए काफी नया हूँ, लेकिन क्या आप अपने स्थानीय भंडार से क्लोन नहीं कर सकते हैं और अपनी कार्यशील प्रतिलिपि क्लोन पर कॉपी कर सकते हैं? फिर आप मूल में अपना विलय चला सकते हैं? मूल की कार्यशील प्रतिलिपि में परिवर्तन की अनुमति देने के लिए स्वतंत्र होने पर आप क्लोन में अपनी कार्यशील प्रति की स्थिति को सुरक्षित रखेंगे।

पहले परीक्षण करें। मैंने इसे एचजी में कभी नहीं किया है।

0

बस इसे क्लोन में करें।

  1. MyRepo विलय है, जो सभी के लिए प्रतिबद्ध परिवर्तन से अधिक खींच लेंगे, लेकिन अपने अप्रतिबद्ध परिवर्तन
  2. अंदर MyRepo विलय Repo1 से एक पुल करने के लिए क्लोन MyRepo।
  3. अंदर MyRepo विलय कर सभी hg merge रों आप
  4. अंदर MyRepo विलय या तो Repo1 या मूल MyRepo

वापस MyRepo को धक्का MyRepo का काम कर निर्देशिका परिवर्तन नहीं करेगा करने के लिए धक्का चाहते हैं तो, यह एक सुरक्षित कार्रवाई है।

Mercurial में याद रखें कि क्लोन अविश्वसनीय रूप से तेज़ और सस्ते हैं - आधुनिक फ़ाइल सिस्टम पर वे कवर के तहत हार्डलिंक का उपयोग करते हैं ताकि वे डिस्क पर अधिक जगह नहीं ले रहे हैं।

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