2012-11-20 23 views
18

This answer दिखाता है कि आप पैच को प्रतिबद्धता कैसे दे सकते हैं, लेकिन मैं केवल एमक पैच को स्थानीय परिवर्तनों में कैसे परिवर्तित कर सकता हूं?मैं केवल Mercurial queues पैच को स्थानीय परिवर्तनों में कैसे परिवर्तित करूं?

+0

क्षमा करें, लेकिन mq-patch ** ** पहले से ही "केवल स्थानीय परिवर्तन" है, AFAIK। आप और कुछ क्यों चाहते हैं? –

+4

'स्थानीय परिवर्तन' परिवर्तनों के लिए Mercurial शब्दावली है जो एक परिवर्तन में नहीं हैं या Mercurial पैच द्वारा ट्रैक किया गया है। पैच को स्थानीय परिवर्तनों में परिवर्तित करने के लिए कई कारण हो सकते हैं। वैसे भी, मुझे इसे कई बार करने की ज़रूरत है और स्टैक ओवरफ्लो पर जवाब नहीं मिला और न ही गुगलिंग (मुझे आरटीएफएम था) के माध्यम से, इसलिए मैंने जवाब साझा किया जब मुझे यह पता चला कि अन्य लोग ऐसा करना चाहते हैं। – Lstor

उत्तर

21

लघु जवाब

सुनिश्चित करें कि पैच लागू किया जाता है, तो:

hg qrefresh nothing 
hg qpop --keep-changes 
hg qdelete "Name of patch" 

लांग जवाब

सबसे पहले, आप सुनिश्चित करें कि कोई परिवर्तन पैच द्वारा पता लगाया जाता है बनाने की जरूरत है । ऐसा करने के लिए, का उपयोग

hg qrefresh nothing 

nothing सिर्फ एक यादृच्छिक फ़ाइल नाम है कि है नहीं भंडार में है। मैं आम तौर पर ब्रेवटी के लिए hg qref 0 का उपयोग करता हूं। hg qrefresh एक वैकल्पिक फ़ाइल पैटर्न स्वीकार करता है। यदि यह दिया जाता है, तो पैच पैटर्न से मेल खाने वाले परिवर्तनों को ट्रैक करेगा - और केवल उन्हीं। जब फ़ाइल पैटर्न से मेल नहीं खाता है, तो पैच द्वारा कोई भी परिवर्तन ट्रैक नहीं किया जाएगा, और इस प्रकार केवल स्थानीय परिवर्तन होंगे।

अब आपके पास एक बेकार पैच झूठ बोल रहा है, और आपके पास कुछ स्थानीय परिवर्तन हैं। साफ करने के लिए, आप

hg qpop --keep-changes 

स्थानीय परिवर्तन होने के बावजूद पैच पॉप करने के लिए कर सकते हैं। अंत में, मृत खाली साथ ही अव्यावहारिक पैच दूर करने के लिए आप का उपयोग

hg qrm "Name of patch" 

आप एक व्यावहारिक पैच है, जो नहीं निकाल सकते कर सकते हैं तुम क्यों hg qpop --keep-changes कदम की जरूरत है।

(नोट: hg qrm और hg qremovehg qdelete का उपनाम कर रहे हैं।)

तो TortoiseHg

TortoiseHg साथ

का उपयोग कर, क्लिपबोर्ड (Workbench> करने के लिए पैच के निर्यात पर राइट क्लिक करें पैच> निर्यात> कॉपी पैच), फिर पैच को अस्वीकार कर रहे हैं, और आखिरकार "वर्किंग डायरेक्टरी" होने वाले गंतव्य के साथ क्लिपबोर्ड से आयात करना काम करता है। यहाँ कुछ स्क्रीन कैप्चर्स इस प्रक्रिया प्रदर्शन कर रहे हैं: enter image description here

+3

'- रखरखाव परिवर्तन 'अब' hg qpop' के लिए मान्य विकल्प नहीं है।'Hg help qpop' के अनुसार, ऐसा लगता है कि '--force' अब वह विकल्प है जो हम यहां चाहते हैं: " -f --force पैच की गई फ़ाइलों में किसी भी स्थानीय परिवर्तन को भूलें " – sjbx

+0

' hg qrefresh 0' विफल रहता है 'सिस्टम निर्दिष्ट फाइल का पता लगाने में नाकामयाब रहा।' विकल्प जो मैंने पाया है (पावरहेल सिंटैक्स): 'hg qrefresh - exclude" $ (hg root) "'। यह भंडार में सबकुछ बाहर करने के लिए एमक्यू को बताता है। किसी भी कारण से, बस '.' काम नहीं किया, और मुझे पूरा पथ निर्दिष्ट करना पड़ा (इसलिए,' hg root')। – moswald

+0

@CraftyThumber मैं अभी भी 'रखरखाव-परिवर्तन' देखता हूं, और AFAICT '--force' उन परिवर्तनों को खो देगा जिन्हें हम सहेजने की कोशिश कर रहे हैं। – moswald

6

एक यकीनन आसान विकल्प:

hg qfinish qtip 
hg strip -k tip 

है, पैच खत्म और फिर (strip करने के लिए -k विकल्प) जिसके परिणामस्वरूप अपने परिवर्तनों को बनाए रखते हुए प्रतिबद्ध हटाने ।

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

  • कोई संबंधित समस्या नहीं^_^