2008-10-26 11 views
59

हर बार जब मैं एक 'hg diff file.ext' करता हूं तो मैं एक कंसोल diff अनुप्रयोग का उपयोग कर समाप्त होता हूं। क्या इसे बदलने का कोई तरीका है? मुझे Mercurial दस्तावेज़ीकरण में कोई संदर्भ नहीं मिल रहा है (मैं विलय के बारे में बात नहीं कर रहा हूं!)। मैं Kdiff3 या WinMerge (मैं विंडोज का उपयोग कर रहा हूँ) का उपयोग करना चाहता हूँ।Mercurial में डिफ़ॉल्ट diff उपकरण को बदलना संभव है?

उत्तर

67

मैं इस का उपयोग कर एक मर्क्युरियल में निर्मित विस्तार समाधान कर लिया है ... मैं सिर्फ Mercurial.ini में निम्न पंक्तियां (मर्क्युरियल फ़ोल्डर पर) जोड़ने के लिए:

[extensions] 
hgext.extdiff= 

[extdiff] 
cmd.vdiff = kdiff3 

जब मैं kdiff3 उपयोग करना चाहते हैं

hg vdiff file.ext 
+2

इसके अलावा, आप difftool, उदाहरण के लिए विकल्प पास कर सकते हैं। '[extdiff] opts.vdiff = 2>/dev/null' – ACyclic

+0

यह उत्तर (और अब तक के नीचे वाले अन्य) एक और diff टूल उपलब्ध कराता है, लेकिन" डिफ़ॉल्ट diff टूल "नहीं बदलता है। यानी, जब आप 'hg diff' को कॉल करते हैं तो यह किस उपकरण का उपयोग नहीं किया जाता है - या अधिक महत्वपूर्ण बात यह है कि जब आप 'hg log -p' का उपयोग करते हैं तो परिवर्तनों के पूरे संग्रह को देखने के लिए। मुझे वास्तव में डिफ़ॉल्ट बदलने के लिए एक रास्ता खोजना अच्छा लगेगा? (उदाहरण के लिए, किसी शाखा की समीक्षा करते समय कभी-कभी शब्द-आधारित भिन्नता का उपयोग करने में सक्षम होना चाहिए।) –

8

इस config

[extdiff] 
cmd.kdiff3 = 

मैं इस आदेश का उपयोग करें देखने के लिए के साथ: भिन्नता की बजाय मैं केवल उपयोग करने के लिए diffs:

hg kdiff 

यह सभी फ़ाइलों के साथ एक निर्देशिका वृक्ष दिखाता है। आप फ़ाइल के लिए diffs देखने के लिए एक फ़ाइल पर क्लिक करें। आप केवल एक फ़ाइल देखने के लिए कमांड में फ़ाइल पैरामीटर जोड़ सकते हैं।

अधिक जानकारी here

2

मुझे कुछ मिनट पहले ही यह समस्या थी; मैंने बस इसे स्थापित किया और अपना पथ जोड़ा (डिफ़ॉल्ट सी: \ प्रोग्राम फाइल \ kdiff3 पर है) मेरे सिस्टम पाथ e.v. नया पथ चुनने के लिए मेरी विंडो को पुनरारंभ किया, और "एचजी केडीएफ 3" अभी काम किया। जैसा कि यह पता चला है कि निम्नलिखित मेरे आधार "mercurial.ini" फ़ाइल में है, यह kdiff3 को सिस्टम पर सभी एचजी रेपो के लिए काम करने की अनुमति देता है।

[extensions] 
hgext.extdiff = 

[extdiff] 
cmd.kdiff3 = 

[merge-tools] 
kdiff3.args = $base $local $other -o $output 
2

आप देख रहे हैं git difftool है, जहां आप फ़ाइल नाम टाइप करने के लिए और सभी बदली हुई फाइलों के लिए diff देखते हैं, अपने ~/.hgrc करने के लिए इन जोड़ने के लिए, और hg difftool चलाने की जरूरत नहीं है की तरह कुछ के लिए।

[extensions] 
extdiff = 

[extdiff] 
cmd.vimdiff = vimdiff 

[alias] 
difftool = !for file in $(hg status -n); do hg vimdiff $file; done 
संबंधित मुद्दे