एक साधारण उदाहरण लें: मैं डिफ़ॉल्ट शाखा पर काम कर रहा हूं, कुछ बदलाव स्थानीय रूप से प्रतिबद्ध हैं, और मैंने मास्टर रिपोजिटरी से कुछ और खींच लिया है। मैं अपने अलग स्थानीय भंडार में कुछ दिनों के लिए काम कर रहा हूं, इसलिए मेरे परिणामों को मास्टर में वापस धक्का देने से पहले विलय करने में काफी बदलाव हुए हैं।Mercurial में दिशा पदार्थ मर्ज करता है?
default ---o-o-o-o-o-o-o-o-o-o-o (pulled stuff)
\
o----o------------o (my stuff)
अब मैं दो चीजें कर सकता हूं।
विकल्प # 1:
hg pull
hg merge
परिणाम # 1:
default ---o-o-o-o-o-o-o-o-o-o-o
\ \
o----o------------o-O
विकल्प # 2:
hg pull
hg update
hg merge
परिणाम # 2:
default ---o-o-o-o-o-o-o-o-o-o-o-O
\ /
o----o------------o
ये दो परिणाम मेरे लिए आइसोमोर्फिक दिखते हैं, लेकिन व्यावहारिक रूप से ऐसा लगता है कि विकल्प # 2 के परिणामस्वरूप छोटे बदलाव होते हैं (क्योंकि यह केवल मेरे कुछ बदलावों को लागू करने के बजाय मेनलाइन में कुछ बदलावों को लागू करता है)।
मेरा सवाल है: क्या इससे कोई फर्क पड़ता है? क्या मुझे अपने विलय की दिशा की परवाह करनी चाहिए? क्या मैं अंतरिक्ष बचा रहा हूं अगर मैं ऐसा करता हूं? (मर्ज के बाद hg log --patch --rev tip
कर रहा है।)
यह विशेष रूप से महत्वपूर्ण है यदि आप [एचजी-गीट] (http://hg-git.github.com/) का उपयोग कर रहे हैं, क्योंकि यह वर्चुअल गिट शाखाओं की स्थिति को ट्रैक करता है बुकमार्क का उपयोग कर। यदि आप गलत तरीके से विलय करते हैं, तो गिट शाखा बुकमार्क नहीं बढ़ेगा, और आपके पास धक्का देने के लिए कुछ भी नहीं होगा। –
200 9 में विलय करने के लिए बुकमार्क को 201 तक आगे बढ़ने की गारंटी नहीं है। यदि आप मेरी सामग्री को अपडेट करते हैं; एचजी मर्ज 200 'यह होगा, लेकिन अगर आप 1 9 5 अद्यतन करते हैं; एचजी मर्ज 200 'यह नहीं होगा। बुकमार्क नाम द्वारा अपडेट इसे * सक्रिय * बनाता है। –