मैंने अभी setting Notepad++ as my external editor with msysgit1.6.2.2 के साथ कुछ हद तक समान अनुभव अनुभव किया है।
कुंजी को यह समझना था कि रैपर एक डॉस स्क्रिप्ट नहीं था, लेकिन एक/bin/sh स्क्रिप्ट थी। सभी '\
' बनाने के बारे में चिंता मत करो
#!/bin/sh
# diff is called by git with 7 parameters:
# path old-file old-hex old-mode new-file new-hex new-mode
"C:/Programs/SourceGear/DiffMerge/DiffMerge.exe" /title1="Old Version" "$2" /title2="New Version" "$5" | cat
:
तो अपने ".bat" में डाल करने की कोशिश (भले ही यह वास्तव में एक बल्ला स्क्रिप्ट नहीं है, तो एक्सटेंशन यहां महत्वपूर्ण नहीं है) '/
' पर जाएं: यह बाहरी diff उपकरण को बुलाते हुए गिट स्क्रिप्ट द्वारा किया जाता है।
मैंने इसे डिफमेर्ज के साथ परीक्षण नहीं किया, लेकिन WinMerge के साथ, यह एक डॉस सत्र या गिट शैल दोनों से ठीक काम करता है।
#!/bin/sh
"C:/Program Files/WinMerge/WinMergeU.exe" -e -ub "$2" "$5" | cat
('-e
' विकल्प के साथ, मैं 'ESC
' पर सिर्फ OT प्रकार को बंद करने और diff उपकरण छोड़ने की है: कि अच्छा काम करता है)
average_geek टिप्पणी में कहते हैं :
ने '/bin/sh
' हेडर जोड़ा और फिर गिट diff चलाने की कोशिश की।
इस बार त्रुटि है:
Unexpected parameter 'C:/Docume~/avggeek/LOCALS~1/Temp/.diff_b08444
वहाँ मानकों को पारित कर दिया जा रहा है क्या जब मैं git diff
फोन को देखने के लिए कोई तरीका है?
1/वास्तव में यह देखने का एक तरीका है कि पैरामीटर पास हो रहे हैं!
C:\Program Files\Git\libexec\git-core\git-sh-setup
फ़ाइल में निम्न पंक्ति जोड़ें:
git_editor() {
: "${GIT_EDITOR:=$(git config core.editor)}"
: "${GIT_EDITOR:=${VISUAL:-${EDITOR}}}"
case "$GIT_EDITOR,$TERM" in
,dumb)
echo >&2 "No editor specified in GIT_EDITOR, core.editor, VISUAL,"
echo >&2 "or EDITOR. Tried to fall back to vi but terminal is dumb."
echo >&2 "Please set one of these variables to an appropriate"
echo >&2 "editor or run $0 with options that will not cause an"
echo >&2 "editor to be invoked (e.g., -m or -F for git-commit)."
exit 1
;;
esac
#### ADD THIS LINE BELOW
echo >&2 "editor is ${GIT_EDITOR:=vi} [email protected]"
#### END ADDITION ABOVE
eval "${GIT_EDITOR:=vi}" '"[email protected]"'
}
आप क्या संपादक बुलाया जा रहा है देखेंगे, क्या पैरामीटर के साथ।
अब
, "अप्रत्याशित पैरामीटर" भाग के बारे में:
मैं जब मैं "/e /ub
" के बजाय "-e -ub
" के साथ WinMergeU.exe कहा जाता है, तो पहला सवाल यह है कि त्रुटि के एक ही तरह था:
क्या आपको यकीन है कि "/title1
" बिट का उपयोग "-title1
" या "-t1
" या "--title1
" या "--t1
" के रूप में नहीं किया जा सका? chapter 9 "Command Lines Arguments" of the pdf documentation of DiffMerge से यही देख सकता है।
यदि नहीं, तो मुझे संदेह है कि कुछ डबल कोट्स सही पैरामीटर को सही तरीके से सीमित करने के लिए हैं। की तरह कुछ:
"/title1="Old Version"" "$2" "/title2="New Version"" "$5"
or
"/title1=\"Old Version\"" "$2" "/title2=\"New Version\"" "$5"
लेकिन मेरे पैसे नहीं बल्कि "-title1
" या "-t1
" फ़ॉर्म पर होगा:
-t1="Old Version" "$2" -t2="New Version" "$5"
ठीक काम करना चाहिए।
बस, कुछ "DiffMerge" विशिष्ट तत्वों के साथ मेरा उत्तर पूरा के रूप में अनुरोध किया। – VonC