mercurial - उच्छृंखल-अलमारियों के समान कतारों के साथ कार्य करना?




workflow shelve (2)

मैंने हाल ही में एमक्यू के साथ काम करना शुरू कर दिया है क्योंकि मुझे अलग-अलग पैच पर काम करने का विचार है और जब तक कि परिवर्तनों को पर्याप्त रूप से परिष्कृत नहीं किया जाता है तब तक रेपो को प्रभावित किए बिना काम करना इससे पहले, मैं मर्क्यूरिअल के समतल एक्सटेंशन के साथ काम करता था, लेकिन इसे थोड़ा अस्थिर पाया। मैं अभी भी एमक्यू में पता लगाने की कोशिश कर रहा हूं कि कैसे पैच को एक दूसरे से अलग रखना है और उन्हें किसी विशेष क्रम में और अलग-अलग शाखाओं में लागू नहीं करना है। यहां मेरा सामान्य प्रवाह है -

1. एक नए पैच पर काम करना शुरू करें:

hg qnew fix-bug-1234 -m "fix bug 1234"
# do some work
hg qrefresh

2. पर काम करने के लिए एक नई सुविधा / बग प्राप्त करें:

hg qpop fix-bug-1234
hg qnew some-feature -m "implement feature X"
# some work on feature X (perhaps in a different branch)
hg qrefresh

3. इस समय, मैं बगफिक्स पर वापस काम करना चाहता हूं, और फीचर काम को एक तरफ रख दिया। मैंने सोचा था कि यह उतना सरल है:

hg qpop some-feature
hg qpush fix-bug-1234
# wrap up bug fix
hg qfinish fix-bug-1234
# get back to work on feature

हालांकि, एमक्यू हमेशा इस श्रृंखला में बनाए गए नवीनतम पैच का उपयोग करता है, और मैं इसे उपयोग कर रहा हूँ qpop / qpush कमांड की परवाह किए बिना लागू होता है मुझे ध्यान देना चाहिए कि जिन फ़ाइलों पर मैं काम करता हूं, वे पूरी तरह अलग हैं (हालांकि वे कभी-कभी एक ही हो सकते हैं)।

क्या मुझसे कोई चूक हो रही है? मैं इस के लिए hg qqueue का उपयोग किया जाना चाहिए? धन्यवाद।


  1. स्टैक से सभी पैच को हटाने के लिए hg qpop -a को निष्पादित करें
  2. hg qpush --move some-patch निष्पादित करें hg qpush --move some-patch लागू करने के लिए "कुछ पैच" लागू करने के बिना जो कुछ भी पैच उसके पैच स्टैक में हो सकता है

आप गार्ड का इस्तेमाल कर सकते हैं वे आपकी series फ़ाइल को दोबारा व्यवस्थित किए बिना पैच को व्यवस्थित रखने की अनुमति देते हैं, और एक पैमाना के केवल सबसेट को चुनते हैं, फिर भी स्टैक-आदेशित फ़ैशन में

आपके मामले में एक उदाहरण होगा:

hg qnew bugfix
# ..hack hack..
hg qrefresh
# want to switch over to working on some feature now
hg qpop
hg qnew feature
# ..hack hack..
hg qrefresh

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

hg qpop -a
hg qguard feature +featureguard
hg qguard bugfix +bugfixguard

यदि आप feature पर काम करना चाहते feature :

hg qselect featureguard
hg qpush
applying feature
now at: feature

यदि आप bugfix पर काम करना चाहते हैं:

hg qpop -a
hg qselect bugfixguard
hg qpush
applying bugfix
now at: bugfix

ध्यान दें कि चूंकि आपने सकारात्मक गार्ड bugfixguard चयन किया है, एमक्यू लीप-फ्रेग्ज feature (क्योंकि यह सकारात्मक रक्षक एक से अलग था) और इसके बजाय पैच bugfix लागू किया गया (जो चयनित गार्ड से मेल खाती है)।

कुछ उपयोगी उपकरण जब गार्ड के साथ काम करते हैं तो hg qseries -v , जो एक संरक्षित, अपरिवर्तित पैच और hg qselect -l के लिए सामान्य U बजाय G hg qselect -l जो प्रत्येक पैच से संबंधित गार्ड प्रदर्शित करेगा।





mercurial-queue