2011-06-17 10 views
5

का सबसे बड़ा मुद्दा यह है कि अगर मैं कुछ फाइलों पर काम कर रहा हूं जो मैं नहीं करना चाहता हूं, तो मैं उन्हें बचाता हूं .. फिर मेरे पास अन्य फाइलें हैं जिन्हें मैं सर्वर पर धक्का देना चाहता हूं, हालांकि अगर किसी और ने भंडार में बदलाव किए हैं, और मैं उन्हें नीचे खींचता हूं .. यह मुझे विलय करने या पुन: भेजने के लिए कहता है .. इनमें से किसी भी विकल्प से मुझे मेरे स्थानीय परिवर्तनों को खोने का कारण बन जाएगा जो मैंने नहीं किया है।स्थानीय Mercurial भंडार में असामान्य परिवर्तन कैसे रखें, जबकि अभी भी धक्का/खींच रहा है? Hgeclipse

अन्य लोग इस बारे में क्या करने के लिए कर रहे हैं? मुझे अपने सिर को पाने के लिए शेल्फिंग एक्सटेंशन के लिए प्रलेखन मिलता है ..

मैं सर्वर से/फ़ाइलों को पुश करने और खींचने के लिए Mercurial ग्रहण का उपयोग कर रहा हूं। इस के किसी भी स्पष्टीकरण की सराहना की जाएगी! धन्यवाद!

उदाहरण:

मैं मर्क्युरियल ग्रहण में अपनी वेबसाइट पर काम कर रहा हूँ .. मैं एक नया फ़ोल्डर और नई फ़ाइलों है कि मैं बस अभी तक सर्वर के लिए प्रतिबद्ध नहीं करना चाहती है। मैंने कुछ मौजूदा फाइलों को भी संशोधित किया है और मैं अभी तक उन बदलावों को लाइव नहीं करना चाहता हूं। फिर मेरी वेबसाइट पर कुछ तोड़ता है और मुझे इसे ठीक करने की ज़रूरत है, यह मुझे रेपो की सबसे हालिया नोक के साथ विलय या विलय किए बिना इसे ठीक करने नहीं देगा और इससे मुझे मेरे सभी अपरिचित परिवर्तनों को खोने का कारण बन जाएगा। अगर मैं इसे खोना नहीं चाहता तो मैंने अपने नए फ़ोल्डर और फ़ाइलों के साथ क्या करना चाहिए? पुनः क्लोनिंग थकाऊ लगता है। फ़ाइलों को एक नए फ़ोल्डर में कॉपी करना भी कठिन लगता है। मुझे यकीन है कि शेल्विंग या एमक्यू जो मैं चाहता हूं वह करूँगा, मुझे नहीं पता कि अभी तक इसके बारे में कैसे जाना है।

+0

कृपया जो प्रलेखन ठंडे बस्ते में डालने के लिए हमें आप उपयोग कर रहे हैं, और क्या भागों आप मुसीबत निम्नलिखित मना रहे हैं बताओ। [मर्क्युरियल प्रयोज्य] की –

+1

संभव डुप्लिकेट (http://stackoverflow.com/questions/6390436/mercurial-usability)। @ जेसन: यदि आप बस अपना प्रश्न दोबारा लिखना चाहते हैं, तो 'संपादन' बटन का उपयोग करें, नया प्रश्न पोस्ट न करें। – Gilles

+0

मुझे Mercurial ग्रहण में एमक्यू एक्सटेंशन का उपयोग करने से संबंधित कोई भी दस्तावेज नहीं मिल रहा है। मैं इस दस्तावेज़ीकरण [लिंक] (http://mercurial.selenic.com/wiki/MqTutorial) 'MqTutorial' के माध्यम से चला गया है। मुझे लगता है कि मुझे समझ में नहीं आता कि पैच और काम प्रवाह का उपयोग कैसे करें। मैं अपने प्रश्न में क्या करने की कोशिश कर रहा हूं इसका एक उदाहरण जोड़ूंगा। – Jason

उत्तर

2

मुझे यकीन है कि कोई आपको खराब कामकाज खोजने में मदद करेगा, लेकिन सबसे अच्छा मार्ग आपको लक्ष्यों को बदलना है - बस प्रतिबद्ध करें। कोड जो प्रतिबद्ध नहीं किया गया है लिखा नहीं गया है। यदि आप सकारात्मक रूप से अपने इतिहास में लगातार काम करने का पालन नहीं कर सकते हैं तो क्यूई रिपोजिटरी के साथ Mercurial Queues का उपयोग करें और इसे प्रतिबद्ध करें। फिर आप परिवर्तनों को पॉप कर सकते हैं, पुश/पुल/विलय कर सकते हैं, और उन्हें वापस धक्का दे सकते हैं, और आपके सभी मूल्यवान काम पैच कतार में किए जाएंगे।

+0

मैं मर्क्युरियल ग्रहण में कैसे कतार के काम यह पता लगाने नहीं कर पा रहे। इस बारे में कोई अतिरिक्त स्पष्टीकरण की सराहना की जाएगी! – Jason

+1

अब इसका हिस्सा मुझे पॉप/पुश और वह सब समझ नहीं रहा था। तो किसी और सोच के लिए .. आप एक पैच (qnew) बनाते हैं, तो आप जो भी परिवर्तन करने की जरूरत है, लेकिन प्रतिबद्ध करने के लिए नहीं करना चाहते, तो पैच अद्यतन करने के लिए, पैच से दूर ले जाने qpop और कोई भी परिवर्तन करने के लिए आप चाहते हैं बनाने के qrefresh करना तुरंत धक्का अपने पैच में वापस जाने के लिए qpush। – Jason

3
अपने उदाहरण स्थिति के संदर्भ में

, यहाँ मैं क्या कर सकता है (सिर्फ बातें आप वर्तमान में काम कर रहे हैं के लिए प्रतिबद्ध करने Ry4an की रणनीति निम्नलिखित है, लेकिन पहले से ही प्रकाशित करने के लिए नहीं करना चाहते हैं) है:

पहनना पड़ता है आप काम शुरू इस तरह की एक भंडार में:

$ hg status -A 
C f1 
C f2 
$ hg glog 
@ changeset: 1:7f3c6c86a92f 
| tag:   tip 
| summary:  add f2 
| 
o changeset: 0:03ca1e6d5b86 
    summary:  initial 

यह 2 फाइलें और 2 प्रतिबद्धता/परिवर्तन हैं। आप कुछ काम करना है, चलो एक नई सुविधा जोड़ते हैं, और उसके बाद अपने काम की नकल इस प्रकार दिखाई देंगे:

$ hg status 
M f2 
? f3 
? f4 

2 नए और 1 संशोधित फ़ाइल रहे हैं। अब आपको एक बग ठीक करना होगा जिसके लिए आपको रिमोट रिपोजिटरी में किसी भी नए बदलाव की आवश्यकता है। यह करने से अपने वर्तमान काम स्नैपशॉट और दूरदराज के परिवर्तन खींच (का क्रम आपको लगता है कि कोई फर्क नहीं पड़ता है, डिफ़ॉल्ट रूप से एक पुल अपने काम की नकल के राज्य स्पर्श नहीं करता है):

$ hg commit -A -m "snapshot feature work" 
$ hg pull 

यह एक में हो सकता है इस तरह इतिहास:

o changeset: 3:2284ba62de07   <-- just pulled in 
| tag:   tip 
| parent:  1:7f3c6c86a92f 
| summary:  edit f1 
| 
| @ changeset: 2:4a19d371a04f   <-- your interrupted work 
|/ summary:  snapshot feature work 
| 
o changeset: 1:7f3c6c86a92f 
| summary:  add f2 
| 
o changeset: 0:03ca1e6d5b86 
    summary:  initial 

अब आप को अद्यतन करने के लिए/चेकआउट संशोधन 3 और कर सकते हैं बगों शुरू:

$ hg update 3 
.. fix the bug .. 
$ hg commit -m "fix a bug" 
$ hg glog --limit 3 
@ changeset: 4:5d3d947fb4af 
| tag:   tip 
| summary:  fix a bug 
| 
o changeset: 3:2284ba62de07 
| parent:  1:7f3c6c86a92f 
| summary:  edit f1 
| 
| o changeset: 2:4a19d371a04f 
|/ summary:  snapshot feature work 
: 

अच्छा लग रहा है, चलो अपना समाधान, यानी धक्का देनायह रहते हैं, जबकि अपने मध्यवर्ती काम का प्रकाशन नहीं करते हैं:

$ hg push -r 4 

इस संशोधन 4, अपने बग सुधार के लिए अग्रणी सभी परिवर्तनों, लेकिन अपने स्थानीय भंडार में कोई अन्य शाखाओं धक्का। तुम भी -r . इस्तेमाल कर सकते हैं, जो आपके काम कर प्रतिलिपि की मूल संशोधन, अर्थात संशोधन तुम सिर्फ प्रतिबद्ध को दर्शाता है।

अंत में आप अपनी सुविधा के काम करने के लिए वापस जाने के लिए और अपने काम जारी रख सकते हैं:

$ hg update 2 
.. work, commit, work, commit .. 
.. finally merge with the other branch, e.g. revision 4 

ये कदम कमांड लाइन पर हैं, लेकिन मुझे लगता है कि में इसी क्लिक के लिए सामान्य अवधारणा अनुकूल करने के लिए कड़ी मेहनत करने के लिए नहीं है ग्रहण Mercurial प्लगइन।

कुछ अतिरिक्त नोट्स:

  • आप बुकमार्क करना चाहें अपने स्नैपशॉट, प्रतिबद्ध है ताकि आप संशोधन आईडी या संख्या के साथ काम करने की जरूरत नहीं है।
  • आप एक ही में अपनी सुविधा काम को प्रकाशित करने के लिए बाद में प्रतिबद्ध चाहते हैं, पतन विस्तार संपन्न कर लिए जाने का उपयोग करें।
+0

बस एक नोट: इसे * नज * तकनीक कहा जाता है। Http://hgtip.com/tips/advanced/2009-09-28- nudge-a-gentler-push/ देखें –

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