2010-10-02 12 views
32

मैं एक ऐसे प्रोजेक्ट पर काम कर रहा हूं जहां मेरे पास एक प्रतिबद्धता है जिसने बड़ी समस्याओं के साथ एक सुविधा पेश की जो तत्काल खोज नहीं की गई थी। अब मैं काम को ध्यान में रखते हुए उस संशोधन को पूरी तरह से हटाना चाहता हूं लेकिन मुझे इस 3 तरीके के विलय के चारों ओर अपने सिर को लपेटने में कठिनाई हो रही है। यहां मेरी परियोजना का सरलीकृत ग्राफ है।Mercurial/Meld काम में 3 तरीके कैसे विलय करता है?

 
o changeset: 134:7f81764aa03a 
| tag:   tip 
| parent:  128:451d8a19edea 
| summary:  Backed out changeset 451d8a19edea 
| 
| @ changeset: 133:5eefa40e2a29 
| | summary:  (Change I need to keep keep) 
| | 
*snip 3 commits* 
| o changeset: 129:5f6182a97d40 
|/ summary:  (Change I need to keep keep) 
| 
o changeset: 128:451d8a19edea 
| summary:  (Change that introduced a major problem) 
| 
o changeset: 127:4f26dc55455d 
| summary:  (summary doesn't matter for this question) 

यदि मैं इसे सही ढंग से समझता हूं, तो आर 127 और आर 134 बिल्कुल वही हैं। जब मैं hg up -C -r 133 और फिर hg merge चलाता हूं, तो मैल्ड मेरी फ़ाइलों में से एक के तीन रूपों के साथ पॉप अप करता है: स्थानीय, आधार, और अन्य। स्थानीय लगता है r133 लेकिन मुझे "आधार" और "अन्य" मतलब के आसपास अपने सिर को लपेटने में कठिनाई हो रही है।

उत्तर

34

स्थानीय r133

अन्य R134 है

बेस r128 (दोनों r133 करने के लिए आम पूर्वज और आर 134)

है जब आप उसे मर्ज एक 3 रास्ता प्रदर्शन उन सभी तीनों की तुलना उनसे तुलना करने में मदद करता है ताकि आप यह तय कर सकें कि क्या लेना है और कहां से। यह देखते हुए कि दूसरे संशोधन में क्या परिवर्तन है और आम पूर्वज क्या दिखता है, आप क्या रखना है और क्या बदलना है इसके बारे में अधिक जानकारी प्राप्त करने में सक्षम हैं।

+0

तो आप कह रहे हैं कि इसमें से बहुत कुछ मैन्युअल विलय होने जा रहा है? – Pacerier

10

आपका प्रश्न वास्तव में भ्रमित है, लेकिन यहां कुछ जानकारी दी गई है जो आपकी मदद कर सकती हैं।

  • आधार क्या है?

बेस उस संशोधन का अनमोड संस्करण है जिसे आपने वर्तमान में चेक आउट किया है और काम किया है। जहां संभवतः अन्य परिवर्तनों ने फंसे हुए हैं (आप अपने वर्तमान स्थानीय और आधार के बीच संशोधन कर सकते हैं!)। यह सिर्फ जहां निकटतम संशोधन जहां कोई अन्य कांटा बाद में (उसी पैरेंट) में नहीं है (आपके मामले में आर 128)

  • सिर क्या है?

हेड संस्करण नियंत्रण में नवीनतम संशोधन है। यदि आप केवल एक प्रतिलिपि पर अकेले काम करते हैं तो यह शायद आधार होगा। लेकिन एक सहकर्मी ने एक ही फाइल को संशोधित किया हो सकता है और इसे संस्करण नियंत्रण में चेक किया हो सकता है, फिर सिर आपके आधार से बाद में होता है।

  • स्थानीय क्या है?

स्थानीय अपने संशोधित संस्करण (अपने मामले r133 में)

  • क्या अन्य है?

अन्य कुछ कांटा/शाखा (अपने मामले R134 में) भी माता-पिता के रूप में अपने बेस है कि

  • कैसे 3-जिस तरह से मर्ज काम करता है?

3 तरीके पदानुक्रमित रूप से काम करता है (कम से कम मिश्रण में)।आम तौर पर इस तरह से बाएं से दाएं:

स्थानीय> आधार> अन्य/सिर

स्थानीय/आधार ज्यादातर मामूली बात है, क्योंकि इसके सिर्फ तुम क्या

संशोधित तो आप सिर संशोधन में अपने परिवर्तन मर्ज कर सकते हैं या आपके सह कार्यकर्ता या जो भी हो।

कई अन्य/मुख्य संशोधन हो सकते हैं, लेकिन फिर यह विलय करने का आपका काम नहीं है और इसलिए 3 से अधिक तरीकों की तुलना में समझ में नहीं आता है।

+12

सिर की आपकी परिभाषा Mercurial के लिए सटीक नहीं है। Mercurial में नवीनतम संशोधन 'टिप' कहा जाता है। एक टिप हमेशा एक सिर है लेकिन एक सिर हमेशा एक टिप नहीं है। एक मर्ज 'हेड' में कभी 'आधार' नहीं होता है क्योंकि आधार दो परिवर्तनों का विलय होने वाला सबसे हालिया आम पूर्वज है। –

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