में भ्रष्टाचार का उपयोग करने के नतीजे हाल ही में मर्कुरियल में रिलीज शाखाओं को बनाए रखने के दौरान कई बदलाव हुए हैं। उदाहरण के लिए:Mercurial
- Mercurial: Branch specific changes keep coming back after dummy merge
- Why are Mercurial backouts in one branch affecting other branches?
चूंकि यह 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: इस तरह एक प्रवाह के साथ संभावित समस्याओं क्या हैं?
महान प्रश्न, महान उत्तर :)। दोनों को +1! –
धन्यवाद मार्टिन। जो भी उसके साथ आया था, वह कुछ बहुत ही मजेदार सोच है। मुझे विचार मिला है, लेकिन सामान्य मामले को काम करने की जरूरत है। मैं अनुमान लगा रहा हूं कि इसमें नोड्स के बीच का कोई फर्क नहीं पड़ता है जिसे आप तैयार कर रहे हैं? –
@ पॉल: मुझे लगता है कि आपको यह जानने की ज़रूरत है कि भ्रष्टाचार ट्रांसप्लेंट कैन की तुलना में अधिक मजबूत तरीके से परिवर्तनों की प्रतिलिपि बना सकता है। इस अर्थ में मजबूत है कि नामों को संभाला जाता है और आप विलय टूल में विवादों को हल कर सकते हैं। विवरण अजीब विलय में हैं, लेकिन यह उम्मीद है कि भ्रष्टाचार के हर रोज इस्तेमाल के लिए समझना आवश्यक नहीं है! :-) –