मर्क्युरियल कतार ट्यूटोरियल उपयोग के इस मामले भयानक है का केवल एक उपसमूह प्रतिबद्ध करने के लिए अनुमति देता है की अनुमति देता है Shelve extension। मैंने देखा है कि सभी उदाहरणों का मानना है कि आपने अभी तक प्रतिबद्ध नहीं किया है और आप एक पैच को ताज़ा कर रहे हैं। अधिकांश समय यह मामला नहीं है, और आपके पास 2 या 3 कार्य हैं जो आप एक साथ स्क्वैश करना चाहते हैं या किसी अन्य तरीके से बदलना चाहते हैं।
चलें कहते हैं कि तुम इतिहास की इस तरह है:
---O---O---A---B---C
पहला उदाहरण स्क्वैश है करता है ए, बी, और सी प्रथम init MQ:
$ hg qinit
अब हम की जरूरत है " आयात "पैच कतार में ए, बी और सी काम करता है। आइए मान लें कि वे अंतिम 3 काम करते हैं। हम उन्हें इतना की तरह आयात करने के लिए "एन" संशोधन सिंटैक्स का उपयोग कर सकते हैं:
$ hg qimport -r -3:-1
3 पैच से पैच के रूप में आयात इसका मतलब है कि पिछले करने के लिए प्रतिबद्ध हैं। आप hg qseries
के साथ इन पैच की स्थिति की जांच कर सकते हैं। यह कुछ इस तरह दिखाई देना चाहिए:
$ hg qseries
101.diff
102.diff
103.diff
कहाँ संख्या 101, 102 और 103 वचन देता करता, बी और सी के स्थानीय संशोधन संख्या के अनुरूप अब इन पैच लागू किया, जो परिवर्तन का मतलब हैं कि वे पहले से ही काम कर रहे प्रतिलिपि में हैं। hg qpop
का उपयोग करके आप कामकाजी प्रतिलिपि में बदलाव से छुटकारा पा सकते हैं और उन्हें पैच फॉर्म में सहेज सकते हैं। आप या तो hg qpop; hg qpop
को स्टैक से सी और बी को पॉप करने के लिए कह सकते हैं, या "पॉप टू" पर पैच निर्दिष्ट कर सकते हैं। इस मामले में, यह कुछ इस तरह होगा:
$ hg qpop 101.diff
now at: 101.diff
अब आप पैच पैच कतार में बी और सी करता है के लिए है, लेकिन वे लागू नहीं होती हैं (उनके परिवर्तन कर दिया गया "खो" है - वे केवल मौजूद पैच कतार क्षेत्र में)। अब आप इन पैच को आखिरी में जोड़ सकते हैं, यानी हम एक नई प्रतिबद्धता बनाते हैं जो ए + बी + सी के बदलावों के बराबर है।
$ hg qfold -e 102.diff 103.diff
यह आपके संपादक को दिखाएगा ताकि आप प्रतिबद्ध संदेश बदल सकें।डिफ़ॉल्ट रूप से संदेश क्षैतिज द्वारा अलग किए गए परिवर्तन ए, बी और सी के लिए प्रतिबद्ध संदेशों का समापन होगा। यहां अच्छी बात यह है कि hg qfold
बैच का उपयोग कर रहे हैं यदि आप बैश का उपयोग कर रहे हैं और एचजी-पूर्णता स्क्रिप्ट सोर्स हो। यह इस है, जहां ए + बी + सी एक भी वादा है कि हम रुचि है कि 3 पैच का संयोजन है है की तरह इतिहास छोड़ देता है:
---O---O---A+B+C
एक अन्य प्रयोग मामला है हम पहले के रूप में इतिहास का एक ही प्रकार का हो, तो , लेकिन हम पैच बी ड्रॉप करना चाहते हैं और ए + सी मर्ज करना चाहते हैं। यह वास्तव में उपरोक्त के समान ही है। जब आप qfold कदम पर आते हैं, तो आप बस पिछले पिछले 2 प्रतिबद्ध बजाय प्रतिबद्ध में गुना होगा:
$ hg qfold -e 103.diff
इस पैच कतार में बी के लिए परिवर्तन छोड़ देता है, लेकिन यह काम कर प्रतिलिपि के लिए लागू नहीं है और इसकी प्रतिबद्धता इतिहास में नहीं है। आप चलाकर इस देख सकते हैं:
$ hg qunapplied
102.diff
इतिहास अब यह है, जहां एक + सी एक भी प्रतिबद्ध है कि जोड़ती परिवर्तन ए और सी है की तरह लग रहा:
---O---O---A+C
एक अंतिम उपयोग के मामले हो सकता है कि आप केवल लागू सी आप के रूप में ऊपर qimport चलाकर ऐसा करने चाहते हैं प्रतिबद्ध करने के लिए की जरूरत है, और आप सभी पैच आप नहीं करना चाहता था बंद पॉप जाएगा:
$ hg qpop -a
-एक झंडा साधन बंद पॉप सभी पैच।
$ hg qpush 103.diff
यह इस इतिहास के साथ आप छोड़ देता है:
---O---O---C
बार जब आप इस सब के साथ किया जाता है, आप कतार नगण्य को ख़त्म करने की जरूरत है अब आप सिर्फ एक आप चाहते हैं आवेदन कर सकते हैं। इसके साथ किया जा सकता है:
$ hg qfinish -a
तो हम वहां हैं। अब आप hg push
चला सकते हैं और केवल वही कार्य कर सकते हैं जो आप चाहते हैं, या hg email
मेलिंग सूची में एक सुसंगत पैच चला सकते हैं।
मैंने हाल ही में एक डुप्लिकेट के रूप में पूछा। मुझे शब्दावली के बारे में पता नहीं था इसलिए मुझे खोज करते समय यह नहीं मिला। मेरे प्रश्न पर स्वीकृत उत्तर देखें जिसमें एचजी भ्रष्टाचार शामिल है, Mercurial 2.0 में नया। http://stackoverflow.com/questions/10288482/workflow-to-backport-change-into- अलग-mercucial-branch – oob