2012-09-25 13 views
13

के साथ diffs संपादित करने के लिए kdiff3 का उपयोग करना अक्सर जब मैं diffs करता हूं तो मैं अपनी स्थानीय फ़ाइल को संपादित करने से पहले संपादित करना चाहता हूं। यह ग्रहण की तुलना दृश्य में बहुत अच्छी तरह से काम करता है क्योंकि यह आपको स्थानीय फ़ाइल को आसानी से संपादित करने के साथ-साथ पिछले संस्करण से परिवर्तनों की प्रतिलिपि बनाने की अनुमति देता है।गिट

मैं गिट और केडीएफ 3 को उसी तरह काम करने की कोशिश कर रहा हूं। यह उम्मीद के रूप में काम करता है जब मैं अपने mergetool के रूप में kdiff3 का उपयोग कर रहा हूँ। हालांकि जब मैं इसे difftool के रूप में सेट करता हूं, तो यह मुझे केवल पढ़ने के लिए दृश्य देता है इसलिए मैं कोई संपादन नहीं कर सकता। प्रलेखन के अनुसार (http://kdiff3.sourceforge.net/doc/documentation.html) मुझे उम्मीद है कि --output विकल्प मुझे दो फ़ाइल विलय देने के लिए विकल्प देगा, लेकिन ऐसा नहीं है। मेरी .gitconfig के प्रासंगिक भाग:

[diff] 
    tool = kdiff3 
[difftool "kdiff3"] 
    cmd = /Applications/kdiff3.app/Contents/MacOS/kdiff3 $LOCAL $REMOTE --output $LOCAL 
    trustExitCode = false 
+1

'लगभग $ LOCAL' और' $ REMOTE' आप '$ LOCAL' और' $ REMOTE' में ' '$'' से बचने के लिए किया, या कम से कम रखा '\" '? – VonC

+0

मुझे लगता है कि कोशिश की और मिला एक ही परिणाम। सुझाव के लिए धन्यवाद। –

उत्तर

7

मैं में पेड़ फ़ाइल अगर मैं निम्न आदेश का उपयोग संपादित करने के लिए kdiff3 उपयोग कर सकते हैं:

kdiff3 $LOCAL $REMOTE --output $MERGED 

kdiff3 मेरी $PATH में है, इसलिए महत्वपूर्ण बिट $LOCAL से आउटपुट को $MERGED के बजाय बदलना है।

...the configured command line will be invoked with the following 
variables available: $LOCAL is set to the name of the temporary file 
containing the contents of the diff pre-image and $REMOTE is set to 
the name of the temporary file containing the contents of the diff 
post-image. $MERGED is the name of the file which is being compared. 

के बाद से $LOCAL के उत्पादन की स्थापना के लिए एक अस्थायी फ़ाइल पर लिखने में जा रहा है, आप के बजाय $MERGED लिखने के लिए के बाद से है कि वास्तविक "स्थानीय हो जाएगा चाहता हूँ:

git-difftool मैनपेज से

"पेड़ की फाइल।