हाल ही में मर्क्यूरियल में रिलीज शाखाओं को बनाए रखने पर बदलाव लंघन के बारे में कई सवाल किए गए हैं। उदाहरण के लिए:
- मर्क्यूरियल: डमी मर्ज के बाद शाखा विशिष्ट परिवर्तन वापस आते रहते हैं
- एक शाखा में मर्क्यूरियल बैकआउट अन्य शाखाओं को क्यों प्रभावित कर रहे हैं?
चूंकि यह 2.0 में पेश किया गया था, इसलिए मैंने graft
इस समस्या से बचने के लिए उपयोग करने के बारे में सोचा है। इस तरह एक संशोधन पेड़ दिया:
A---B---C---D---E---F---G---H---I---J
मान लें कि हमें एक रिलीज शाखा बनाने की ज़रूरत है जो बुराई परिवर्तन को रोक देती है E
।
hg update -r D
hg graft "F::J"
हमें देना:
A---B---C---D---E---F---G---H---I---J
\
--F'--G'--H'--I'--J'
- Q1: यहाँ क्या हुआ? मैं समझ सकता हूं कि
transplant
इससे पैच बाहर हो गए होंगेF::J
, और फिर उन्हें लागू किया जाएगाD
, लेकिनgraft
कहा जाता है कि पैच के बजाय 3-वे मर्ज का उपयोग करें। तो वह कैसे काम करता है? यह बेहतर क्यों है?
मुझे लगता है कि मैं अब ठीक कर देता हूं E
, और इसे मेरी रिलीज शाखा में विलय कर देता हूं।
--E2-----------------
/ \
A---B---C---D---E---F---G---H---I---J---M1
\ \
--F'--G'--H'--I'--J'---------M2--
एम 1 एक सीधा मर्ज है; वहां कुछ खास नहीं। एम 2 उन शाखाओं का विलय कर रहा है जिनमें "समान" (या कम से कम समतुल्य) परिवर्तन हैं।
- Q2: यह मर्ज केवल एक सामान्य 3-तरफ़ा मर्ज का उपयोग कर रहा है
D
,J'
औरM1
? - क्यू 3: मर्ज के साथ मदद करने के लिए ग्राफ्ट ऑपरेशन के बारे में अतिरिक्त जानकारी संग्रहीत या उपयोग की गई है?
और अंत में...
- Q4: इस तरह एक प्रवाह के साथ संभावित समस्याएं क्या हैं?