2011-07-11 11 views
7

के लिए संकेत देता रहता है मैंने अपने विकास प्रणाली को कॉन्फ़िगर करने के लिए @ VonC के excellent instructions का उपयोग किया ताकि git difftool <BRANCH1> <BRANCH1> WinMerge का आह्वान करेगा। यहाँ मैं क्या किया है:गिट difftool के माध्यम से WinMerge दूसरी फ़ाइल

[diff]

tool = winmerge 

[difftool "WinMerge"]

cmd = winmerge.sh \"$LOCAL\" \"$REMOTE\" 

[difftool]

:

  1. ~/.gitconfig में निम्नलिखित रखा

    prompt = false 
    
  2. बनाया गया एक /usr/bin/winmerge.sh निम्नलिखित सामग्री के साथ:

    echo Launching WinMergeU.exe: $1 $2

    "C:/Program Files (x86)/WinMerge/WinMergeU.exe" -e -ub "$1" "$2"

अब, जब मैं git difftool <BRANCH1> <BRANCH1> के माध्यम से WinMerge शुरू करने के लिए प्रयास करते हैं, मैं प्राप्त क्या सही पैरामीटर गुजर हो रहा है :

Launching WinMergeU.exe: /tmp/21qMVb_file1.c /tmp/1ACqik_file1.c

लेकिन, कुछ अजीब कारण के बजाय WinMerge दो फ़ाइलों पक्ष-साथ, यह दूसरा बाईं ओर के रूप में स्वीकार फ़ाइल के साथ, दाईं ओर के रूप में पहले फ़ाइल में प्रवेश करने के लिए संकेत देता प्रदर्शित करने के लिए:

[WinMerge should be displaying 2 files not one

ऐसा क्यों हो रहा है? कॉन्फ़िगरेशन चरणों में मुझे क्या याद आया?

पीएस जब मैं कमांड लाइन winmerge.sh file1.c file2.c पर टाइप करता हूं, तो WinMerge तुरंत दो फ़ाइलों को प्रदर्शित करता है, जैसा कि मैं अपेक्षा करता हूं।

अद्यतन: ओह वाह, मैं सिर्फ Both paths are invalid संदेश WinMerge के शीघ्र के निचले भाग में देखा (और स्क्रीनशॉट अद्यतन कि बल देने के लिए)। ऐसा प्रतीत होता है कि इन फ़ाइलों को बस difftool द्वारा उत्पन्न नहीं किया गया था या पथ के साथ कुछ गलत है।

+1

क्या आपने इस बदलाव को आजमाया? http://stackoverflow.com/questions/255202/how-do-i-view-git-diff-output-with-visual-diff-program/4116806#4116806 – VonC

+0

@VonC अभी तक नहीं है, लेकिन मेरे अपडेट को इंगित करें जो इंगित करता है समस्या 'winmerge.sh' की तुलना में पहले बिंदु पर है। ऐसा लगता है कि मेरे सिस्टम कॉन्फ़िगरेशन की अजीबता मेरे खिलाफ काम करती है ... 'सिगविन-1.7.8-1' +' गिट संस्करण 1.7.4' + 'विंडोज 7 अल्टीमेट 64-बिट' मेरे '$ HOME =/घर 'जिसे' // sambaserver/projshare' '/ home' पर रखा गया है। – WinWin

+1

अपने 'होम' को एक और पारंपरिक पाथ पर परिभाषित करने का कोई मौका? 'सी: \ ... 'संभावना है कि आपकी स्क्रिप्ट केवल एक बैश वातावरण में काम करती है, न कि विंडोज़ में। – VonC

उत्तर

5

मैंने समस्या हल की!

समाधान @ pydave के answer in the same thread द्वारा प्रदान किए गए संकेत में निहित है। मुझे बस "$1" "$2" (winmerge.sh में) cygpath -w $1cygpath -w $2 के साथ प्रतिस्थापित करना था।

यह अब खूबसूरती से काम करता है। जैसा कि मैं उम्मीद करता हूँ।

+1

क्या आप इस उत्तर में अधिक जानकारी जोड़ सकते हैं? आपका .gitconfig कैसा दिखता है? – dezman

+0

मेरे लिए काम करने के लिए शेल स्क्रिप्ट में निष्पादित करने के लिए अंतिम आदेश ऐसा था: "सी:/प्रोग्राम फ़ाइलें (x86) /WinMerge/WinMergeU.exe" -e -ub -dl अन्य -dr स्थानीय \ 'cygpath -aw $ 1 \ '\' cygpath- $ 2 \ ' – user470714

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