2011-06-15 12 views
7

नहीं कर सकता मैं ग्रिड diff के लिए opendiff डिफ़ॉल्ट diff-tool के रूप में उपयोग करना चाहता हूँ। यह काम करता था लेकिन किसी कारण से काम करना बंद कर दिया। मैं एक स्क्रिप्ट का उपयोग कर रहा:मैं गिट diff उपयोग opendiff

echo opendiff $2 $5 > opendiff-git.sh 

जो .gitconfig में स्थापित किया जाएगा:

[diff] 
external = ~/opendiff-git.sh 

यह मेरे लिए हाल ही में काम करना बंद कर। गलत क्या है?

अद्यतन: जब मैंने एक नया भंडार क्लोन किया तो सब ठीक काम किया! अजीब!

+0

क्या यह एक त्रुटि की रिपोर्ट कर रहा है? या सिर्फ एक नियमित अंतर्निहित diff दे? – cxreg

+0

नहीं, यह गिट diff का उपयोग करते समय त्रुटि की रिपोर्ट नहीं कर रहा है, यह टर्मिनल में diff प्रिंट करें। मैं खुद ही opendiff का उपयोग कर सकते हैं। – Ida

+0

मैक ओएस एक्स में मेरी एक ही समस्या है। इससे पहले, opendiff इस शेल स्क्रिप्ट को सेट किए बिना भी अच्छा काम करता था। काम करने से रोकने के बाद, मैंने स्क्रिप्ट और diff.tool और diff.external विकल्प जोड़े लेकिन यह अभी भी काम नहीं करता है। और यह कोई त्रुटि नहीं देता है, बस एक टर्मिनल diff बनाता है। क्या हो रहा है? – Petruza

उत्तर

2

मैं इस सवाल का पाया, जबकि मैं opendiff मेरी Git diff & मर्ज उपकरण के रूप में स्थापित करने के लिए कोशिश कर रहा था। अजीब बात यह है कि जब मैंने एक स्क्रिप्ट बनाने के लिए इको opendiff $ 2 $ 5> opendiff-git.sh का उपयोग किया था, तो स्क्रिप्ट में तर्क स्थान धारक $ 2 $ 5 नहीं थे, मैंने उन्हें मैन्युअल रूप से जोड़ा और यह काम करना शुरू कर दिया!

यह आदेश

echo opendiff $2 $5 > opendiff-git.sh 

opendiff-git.sh युक्त

opendiff 

मैं दो तर्क प्लेसहोल्डर $ 2 $ 5 मैन्युअल

opendiff $2 $5 

खोल स्क्रिप्ट निष्पादन योग्य बनाया जोड़ा फ़ाइल के परिणामस्वरूप जैसा कि knittl

012 द्वारा सुझाया गया है
chmod +x ~/opendiff-git.sh 

और यह काम करता है!

+1

आपको '$ 2' और '$ 5' नामों के साथ चर खोजने के लिए कमांड लाइन पर '$' से बचना होगा, जो अस्तित्व में नहीं था, इसलिए उन्हें खाली स्ट्रिंग के साथ प्रतिस्थापित किया गया था। इसके बजाय इसे चलाने का प्रयास करें: प्रतिध्वनि प्रतिबिंब \ $ 2 \ $ 5> ~/opendiff-git.sh – petrsnd

2

अपने opendiff-git.sh फ़ाइल इसके निष्पादन योग्य बिट्स की स्थापना की है सुनिश्चित करें:

chmod +x ~/opendiff-git.sh 
+0

निष्पादन योग्य बिट सेट है। – Ida

1

अब आप git config का उपयोग करके एक डिफ़ॉल्ट उपकरण निर्दिष्ट कर सकते हैं। FileMerge, अर्थात opendiff का उपयोग करने के लिए, चलाएँ:

git config --global diff.tool opendiff 

आप अपने ~/.gitconfig फ़ाइल को देखने के हैं, तो आप अब देखना चाहिए:

[diff] 
    tool = opendiff 

अब यह काम करना चाहिए।

+1

_macOS Sierra_ और _git संस्करण 2.10.1 (Apple Git-78) पर काम नहीं करता _ _ – gr4nt3d

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