संघर्षों का समाधान: "अपने" परिवर्तनों को स्वचालित रूप से कैसे स्वीकार करें?


97

जब परस्पर विरोधी परिवर्तन का उपयोग करते हुए विलय हो जाता है hg merge, तो मर्क्यूरियल मेरी कार्य प्रतिलिपि में विलय किए जाने वाली फ़ाइलों में मार्करों का एक सेट सम्मिलित करता है:

<<<<<<< local
  version = 0.2
=======
  version = 0.1
>>>>>>> other

फिर मैं स्वयं द्वारा निर्मित सूची से यू के रूप में चिह्नित सभी फाइलों को मैन्युअल रूप से संपादित करता hg resolve --all -lहूं और फिर मैं बताता हूं कि मैंने उनके द्वारा हल किया हैhg resolve -m file1 file2 file3 ...

कई स्थितियों में, मैं चाहूंगा कि मेरी या-केवल या केवल-कुछ विरोधाभासी फ़ाइलों पर केवल परिवर्तन हो। मैं दो सरल sed / awk बनाने की सोच रहा हूँ / जो भी स्क्रिप्ट का नाम है accept-theirs.shऔर accept-my.shक्या इसे करने का कोई "उचित" तरीका है?

जवाबों:


166

उपयोग

hg resolve -t internal:other --all

स्वीकार करने के लिए theirsऔर

hg resolve -t internal:local --all

स्वीकार करने के लिए yours


आपका बहुत बहुत धन्यवाद! मुझे समझ नहीं आता कि @djc का क्या मतलब है, लेकिन आपका समाधान एक आकर्षण की तरह काम करता है।
साइहोडेलिया

@psihodelia djc ने बहुत कुछ ऐसा ही कहा, कोशिश करें hg help merge-tools( मर्ज़टूलस बाद के संस्करणों में एक उपनाम है)
MGP

6
एक साइड नोट के रूप में, मैंने इसे अलियास किया:[alias] mine = resolve -t internal:local theirs = resolve -t internal:other
मेल्विन

1
वे तीन पंक्तियाँ हैं अपने आप को जोड़ने के .hgrcलिए, newbies के लिए: [alias]फिर mine = resolve -t internal:local, तब theirs = resolve -t internal:other। आप उपयोग कर सकते करने के बाद hg mine some_file.pyया hg theirs -a(सभी के लिए)
Tobia

1
Phab.mercurial-scm.org/D4379 के अनुसार , आपको --re-mergeध्वज को शामिल करने की भी आवश्यकता हो सकती है (जैसे hg resolve -t internal:other --re-merge --all)
एथन कोएनिग

23

इसे इस्तेमाल करे:

hg merge --tool 'internal:other'

hg help merge-toolsअधिक जानकारी के लिए भी देखें ।


1
या resolveएकल फ़ाइलों के लिए / इसे फिर से करना। (इसके अलावा, आसपास के उद्धरण internal:otherअनावश्यक हैं।)
क्रिस मॉर्गन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.