2011-10-23 10 views
33

में पैच जेनरेट करना मैंने मैन्युअल में इसकी तलाश की है, लेकिन मैं अंतिम प्रतिबद्धता के लिए पैच उत्पन्न नहीं कर सकता। मैंMercurial

hg qnew patch_name 

की कोशिश की लेकिन यह केवल

# HG changeset patch 
# Parent a6a8e225d16ff5970a8926ee8d24272a1c099f9c 

साथ दायर करता है मैं भी

hg export tip 

की कोशिश की, लेकिन यह कुछ भी नहीं है। मैंने वास्तव में बदलाव किए हैं।

अंतिम प्रतिबद्धता के साथ पैच फ़ाइल कैसे उत्पन्न करें?

+1

'एचजी diff -c tip> पैच '- ध्यान दें कि qnew mq एक्सटेंशन का हिस्सा है और एक अलग उद्देश्य के लिए है। –

+1

यदि आपने पहले से ही 'क्यूएनयू' नहीं किया है, तो कोई बदलाव नहीं होने पर टिप संशोधन खाली होगा जब आप 'निर्यात टिप' करते हैं। आपके द्वारा लागू किए गए पैच को हटाने के लिए आपको qdel करना होगा। –

उत्तर

45

यह करने के लिए आदेश export है:

$ hg export -o FILE -r REV 

यह पुनर्निर्देशन की आवश्यकता नहीं है और इस प्रकार किसी भी मंच/खोल पर सही ढंग से काम करेंगे।

+0

पर काम नहीं कर रहा है, इसके अलावा यह उपयोगकर्ता और दिनांक जैसे परिवर्तन हेडर को आउटपुट करता है जो बाद में आयात करते समय परिवर्तन को पुनर्स्थापित करने के लिए Mercurial का उपयोग कर सकते हैं । –

14
तो जैसा

:

hg log -r tip -p > tip.patch 

यह सिर्फ है कि संशोधन के लिए एक पैच उत्पन्न करेगा:

hg diff -r tip > tip.patch 
+0

मैंने इसे विंडोज कंसोल में दर्ज किया, लेकिन यह खाली फ़ाइल बनाता है। यहां तक ​​कि, "एचजी diff" कमांड कुछ भी वापस नहीं करता है। – deem

+1

TortoiseHG में इसके लिए एक अच्छा यूआई है। '-r' के बजाय' hg diff -c tip> tip.patch' आज़माएं। –

+0

@WarrenP ठीक है, मैं संशोधन इतिहास विंडो खोलता हूं, और अगला क्या है? किसी भी संशोधन के साथ फ़ाइल कैसे उत्पन्न करें? – deem

5

आप इस आदेश का उपयोग कर सकते हैं।

22

आपका hg export tip ऐसा करने का सबसे अच्छा तरीका है, और hg diff और hg log आधारित उत्तरों के समान ही कम संस्करण हैं। जब आप hg export tip टाइप करते हैं तो आप वास्तव में क्या देखते/प्राप्त करते हैं? hg log -p -r tip का आउटपुट क्या दिखाता है?

changeset tip अर्थ केवल यह है "changeset कि सबसे हाल ही में मेरी भंडार में आ गया" जो के रूप में उपयोगी एक अवधारणा के रूप में आप, सोच सकते हैं hg pull और hg tag सब भी changesets बनाने के बाद से नहीं है। यदि आप वास्तव में आखिरी चीज चाहते हैं जो आपको प्रतिबद्ध है तो आपको अधिक सटीक revspec की आवश्यकता होगी।

+4

+1 यह समझाने के लिए कि किस टिप का मतलब है कि एक गलत गलतफहमी है। – Spina

1

आप परिवर्तित नवीनतम एक पैच फाइल करने के लिए प्रतिबद्ध करने के लिए,

hg qimport -r tip 

इस का उपयोग सर्वोच्च नियमित एक लागू MQ पैच फ़ाइल के साथ प्रतिबद्ध बदल देगा चाहते हैं।

0

Mercurial में "mq एक्सटेंशन" का उपयोग करके पैच उत्पन्न करने के लिए, आप नीचे दिए गए चरणों का पालन कर सकते हैं। यह Mercurial का उपयोग कर एक पैच बना देगा:

1) एमक एक्सटेंशन सक्षम करना: अपनी एचजीआरसी फ़ाइल में निम्न पंक्तियां जोड़ें और इसे सेव करें।

[extensions] 
mq = 

2) MQ एक्सटेंशन का उपयोग कर एक पैच बनाना: एक पैच MQ एक्सटेंशन का उपयोग कर आप निम्नलिखित कर सकते हैं बनाने के लिए।

hg qnew -e -m "comment you want to enter" bug_name.patch 

उपरोक्त आदेश में, -e ध्वज पैच और -m ध्वज पैच के लिए एक संदेश जोड़ने के लिए है संपादित करने के लिए है।

3) पैच को अपडेट करना: पैच को अपडेट करने के लिए, जब आप पैच पहले से लागू होते हैं तो आप निम्न आदेश का उपयोग कर सकते हैं।

hg qrefresh