2011-01-10 16 views
5

पर विलय होने पर स्वचालित रूप से हल हो जाते हैं, मैं यह देखने के लिए Mercurial के साथ खेल रहा हूं कि यह हमारी कंपनी में उपयोग के लिए उपयुक्त है या नहीं। इसके बड़े बिकने वाले बिंदुओं में से एक विलय क्षमताओं है। इसलिए मैं शाखाएं बनाने और उन्हें वापस डिफ़ॉल्ट लाइन में विलय करने के साथ खेल रहा हूं। परीक्षण में एक शाखा में एक ही जावा फ़ाइल में बस एक नई विधि (विधि ए) जोड़ने और दूसरी शाखा में एक ही फ़ाइल में एक पूरी तरह से अलग जगह में एक अलग विधि (विधि बी) जोड़ना शामिल था।MercurialEclipse के साथ विलय में संघर्ष हैं जो कमांड लाइन

जब मैंने पहली बार टीम का उपयोग करके एक्लिप्स में कोशिश की-> विलय विकल्प मैंने पाया कि पहला विलय ठीक काम करता है (यानी यह विधि ए जोड़ा गया है)। जब मैं दूसरी शाखा को मर्ज करने का प्रयास करता हूं तो यह मुझे बताता है कि एक संघर्ष है जिसे मुझे हल करना होगा। यह बहुत दुर्भाग्यपूर्ण है क्योंकि मैंने सोचा था कि यह सरल प्रकार का विलय वास्तव में ऐसी चीज थी जिसकी वजह से मर्कुरियल को आसानी से संभालना था?

मैंने कमांड लाइन का उपयोग करके सटीक उसी परीक्षण की कोशिश की, और इस बार यह ठीक काम करता था, यानी दोनों विलय संघर्षों को हल करने की आवश्यकता के बिना सफल थे। यह ग्रहण में सांत्वना उत्पादन को देखते हुए निम्न आदेश का उपयोग कर रहा मर्ज करने के लिए: जब मैं इसे अपने आप कमांड लाइन से चलाने

hg -y merge --config ui.merge=internal:fail -r 611ca2784593525cdafd3082b17d3310037a5d58 -f 

जबकि मैं बस कार्य करें:

hg merge -r 1234 

के उपयोग है मर्ज रणनीति 'आंतरिक: असफल' ग्रहण के भीतर होने के कारण ?? और यदि ऐसा है तो डिफ़ॉल्ट व्यवहार को बदलना संभव है ताकि यह वैसे ही काम करे जैसे यह कमांड लाइन पर करता है?

+0

यह है। एचजी साइट पर युक्तियों और युक्तियों का एक लिंक यहां दिया गया है। http://mercurial.selenic.com/wiki/TipsAndTricks#line-227 (यह लिखने के समय 22 टिप है)। एकमात्र विकल्प जो मैं देखता हूं वह एक बाहरी विलय उपकरण का उपयोग करना है। कोई फर्क नहीं पड़ता कि यह क्या करता है, क्योंकि मैं अपने अधिकांश एचजी इंटरैक्शन के लिए टोर्टोइज एचजी का उपयोग करता हूं। TortoiseHG का अगला संस्करण वास्तव में अच्छा है क्योंकि यह अब वर्कबेंच है, इसलिए एक यूआई से सबकुछ कर सकता है। – Mikezx6r

उत्तर

8

internal:fail Mercurial को कुछ भी मर्ज करने की कोशिश न करने के लिए कहता है। अधिक जानकारी के लिए the mercurial wiki देखें।

ऐसा लगता है जिसे ग्रहण प्लगइन लिखा तेज महसूस किया के लिए वे बेहतर मर्क्युरियल स्वचालित रूप से ग्रहण में मर्ज करने के लिए सब कुछ विलय करने के लिए असफल हो और फिर, और शायद hg resolve --mark ... फोन के रूप में फाइल विलय कर रहे हैं होने से ग्रहण में मर्ज को नियंत्रित कर सकता है।

मर्क्युरियल कमांड लाइन से आप दोनों premerge व्यवहार जो तुच्छ मर्ज के हैंडल हो रही है, और फिर देखते हैं, तो अभी भी अपने MergeToolConfiguration उस फ़ाइल प्रकार के लिए सर्वोच्च प्राथमिकता है और अपने पर उपलब्ध है कि से उपकरण के आह्वान का विरोध करता है स्थानीय प्रणाली

+5

धन्यवाद, मैं वरीयताओं में 'संघर्ष को हल करने के लिए बाहरी विलय उपकरण का उपयोग करें' बॉक्स को टिक कर स्वचालित रूप से सरल विलय करने के लिए ग्रहण प्लगइन प्राप्त करने में सक्षम था। यह थोड़ा दुर्भाग्यपूर्ण है कि प्लगइन को प्रीमर व्यवहार करने के लिए आपको बाहरी मर्ज टूल का उपयोग करने की आवश्यकता है। आदर्श रूप से मैं premerge व्यवहार प्राप्त करना चाहते हैं, लेकिन अभी भी संघर्ष हल करने के लिए ग्रहण का उपयोग करें। – DaveJohnston

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