This answer दिखाता है कि आप पैच को प्रतिबद्धता कैसे दे सकते हैं, लेकिन मैं केवल एमक पैच को स्थानीय परिवर्तनों में कैसे परिवर्तित कर सकता हूं?मैं केवल Mercurial queues पैच को स्थानीय परिवर्तनों में कैसे परिवर्तित करूं?
उत्तर
लघु जवाब
सुनिश्चित करें कि पैच लागू किया जाता है, तो:
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 qremove
hg qdelete
का उपनाम कर रहे हैं।)
तो TortoiseHg
TortoiseHg साथका उपयोग कर, क्लिपबोर्ड (Workbench> करने के लिए पैच के निर्यात पर राइट क्लिक करें पैच> निर्यात> कॉपी पैच), फिर पैच को अस्वीकार कर रहे हैं, और आखिरकार "वर्किंग डायरेक्टरी" होने वाले गंतव्य के साथ क्लिपबोर्ड से आयात करना काम करता है। यहाँ कुछ स्क्रीन कैप्चर्स इस प्रक्रिया प्रदर्शन कर रहे हैं:
'- रखरखाव परिवर्तन 'अब' hg qpop' के लिए मान्य विकल्प नहीं है।'Hg help qpop' के अनुसार, ऐसा लगता है कि '--force' अब वह विकल्प है जो हम यहां चाहते हैं: " -f --force पैच की गई फ़ाइलों में किसी भी स्थानीय परिवर्तन को भूलें " – sjbx
' hg qrefresh 0' विफल रहता है 'सिस्टम निर्दिष्ट फाइल का पता लगाने में नाकामयाब रहा।' विकल्प जो मैंने पाया है (पावरहेल सिंटैक्स): 'hg qrefresh - exclude" $ (hg root) "'। यह भंडार में सबकुछ बाहर करने के लिए एमक्यू को बताता है। किसी भी कारण से, बस '.' काम नहीं किया, और मुझे पूरा पथ निर्दिष्ट करना पड़ा (इसलिए,' hg root')। – moswald
@CraftyThumber मैं अभी भी 'रखरखाव-परिवर्तन' देखता हूं, और AFAICT '--force' उन परिवर्तनों को खो देगा जिन्हें हम सहेजने की कोशिश कर रहे हैं। – moswald
एक यकीनन आसान विकल्प:
hg qfinish qtip
hg strip -k tip
है, पैच खत्म और फिर (strip
करने के लिए -k
विकल्प) जिसके परिणामस्वरूप अपने परिवर्तनों को बनाए रखते हुए प्रतिबद्ध हटाने ।
क्षमा करें, लेकिन mq-patch ** ** पहले से ही "केवल स्थानीय परिवर्तन" है, AFAIK। आप और कुछ क्यों चाहते हैं? –
'स्थानीय परिवर्तन' परिवर्तनों के लिए Mercurial शब्दावली है जो एक परिवर्तन में नहीं हैं या Mercurial पैच द्वारा ट्रैक किया गया है। पैच को स्थानीय परिवर्तनों में परिवर्तित करने के लिए कई कारण हो सकते हैं। वैसे भी, मुझे इसे कई बार करने की ज़रूरत है और स्टैक ओवरफ्लो पर जवाब नहीं मिला और न ही गुगलिंग (मुझे आरटीएफएम था) के माध्यम से, इसलिए मैंने जवाब साझा किया जब मुझे यह पता चला कि अन्य लोग ऐसा करना चाहते हैं। – Lstor