2011-03-24 8 views
5

एचजी एमक्यू प्लगइन का उद्देश्य अपने भंडार में सही काम करने में सक्षम होना है, जो आपके अनुपस्थिति वाले एडीएचडी प्रेरित रैंपिंग में आपके कोड के माध्यम से किए गए परिवर्तनों को भ्रमित नहीं कर रहा है;जब आप एक पैच कतार में एक पैच के भीतर बहुत अधिक परिवर्तन करते हैं तो पैच कतार में क्या करना है?

उदाहरण के लिए ....

जब मैं बग y नोटिस और इसके बजाय उस पर काम शुरू मैं पर बग एक्स काम कर रहा हूँ। इस बिंदु पर आपको पैच कतार में एक नया पैच बनाना होगा ताकि परिवर्तनों को भ्रमित न किया जाए जब यह hg qfinish आपके भंडार के लिए प्रतिबद्ध है।

अब एक मिनट के लिए मान लीजिए कि आप नया पैच और प्रक्रिया hg qrefresh में भूल जाते हैं। फिर बाद में अपनी गलती को समझते हुए आप उस पैच से दो पैच में बदलावों को अलग करना चाहते हैं।

मुझे एहसास है कि परिवर्तन को अलग पैच में अलग करने और बाद में काम करने के लिए इसे कतार में अपनी पैच फ़ाइल (और एक नई पैच फ़ाइल) संपादित करने के साथ करना है। हालांकि, मैं diff पैच फ़ाइलों को संपादित करने में अभी तक कुशल नहीं हूं।

मैं इस बारे में कहां से सीख सकता हूं? और इस बारे में कोई कैसे जा सकता है?

उत्तर

0

मेरे पास एक खोल उपनाम है, viq="vim $(hg root)/.hg/patches/", कि मैं केवल इन परिस्थितियों के लिए उपयोग करता हूं!

मैं केवल पैच खींचने के लिए viq चलाऊंगा, फिर diff को संपादित करें और शिकारी को अन्य पैच में उपयुक्त के रूप में ले जाएं।

मैं इंटरैक्टिव तरीकों पर इस पसंद करते हैं (जैसे, git add -i) क्योंकि मैं के रूप में मैं अपने संपादक से काम करते इंटरैक्टिव शीघ्र से के रूप में सुरक्षित काम नहीं लग रहा है (मैं जानता हूँ कि मेरे संपादक, बैकअप बनाता है तुच्छ पूर्ववत है, आदि ...)।

+0

मैंने अपनी पोस्ट में यह स्पष्ट नहीं किया है, लेकिन मुझे पता है कि पैच फाइल कहां हैं, यह सिर्फ पैच फ़ाइल को संपादित करने के विवरण पर असली नहीं है। – leeand00

+0

आह, क्षमा करें - मेरा सुझाव यह नहीं था कि आप नहीं जानते कि वे कहां हैं। मैं बस इतना कह रहा हूं कि, उन सभी विकल्पों को देखते हुए जिन्हें मैं जानता हूं, इस तरह मैं इसे करना पसंद करता हूं। –

+0

इसके अलावा, जब तक आप [हंक स्तर] (http://en.wikipedia.org/wiki/Diff#Unified_format) पर संपादन कर रहे हैं, यह वास्तव में आसान है - आप शिकारियों को चारों ओर ले जा सकते हैं, हालांकि आप चाहते हैं, बस इतना लंबा सही हेडर के रूप में (यानी, '--- ए/foo \ n +++ b/foo') कहीं भी स्थानांतरित शिकारी के ऊपर है। –

3

एक और विकल्प (यह मानता है कि यह आपके प्लेटफ़ॉर्म पर चलता है) TortoiseHG का संस्करण 2.0 है। शेल्व उपयोगिता नामक 'अनुपयुक्त' पैच, या कार्यशील निर्देशिका में फ़ाइलों और फ़ाइलों को स्थानांतरित करने की अनुमति देता है। यह विंडोज, लिनक्स और संभवतः ओएसएक्स के लिए उपलब्ध है।

http://tortoisehg.bitbucket.io/

2

आप record extension सक्रिय कर सकते हैं, निम्नलिखित लाइनों .hgrc को जोड़ने:

[extensions] 
hgext.record = 

आप

hg qrefresh nothing 

साथ अपने वर्तमान पैच साफ कर सकते हैं (ध्यान दें कि "nothing "सिर्फ एक यादृच्छिक स्ट्रिंग है: qrefresh पर तर्क उन फ़ाइलों की सूची है जिन्हें वर्तमान में शामिल किया जाना चाहिए पैच, तो कुछ भी जो एक संशोधित फ़ाइल का नाम नहीं है - मैं आमतौर पर "0" का उपयोग करता हूं)

अब hg qrecord <patchName> के साथ आप इंटरैक्टिव रूप से चुन सकते हैं कि नए पैच में कौन से बदलावों को जाना चाहिए। शेष परिवर्तनों को qnew या अन्य qrecord के साथ किसी अन्य पैच में जोड़ा जा सकता है। अंततः आप पैच मर्ज करने और पुन: व्यवस्थित करने के लिए qpop, qfold का उपयोग कर सकते हैं या .hg/patches/series संपादित कर सकते हैं।

+0

यह बहुत दिलचस्प लगता है ... मुझे इसे देखना होगा। * चीयर्स! * – leeand00

+1

इसके अलावा 'एचजी qcrefresh' (crecord extention का हिस्सा) आपको अलग-अलग लाइनों द्वारा चुनने की अनुमति देता है, यदि स्वचालित पैच बहुत मोटे हैं। –

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