2011-03-04 13 views
44

मैं अपना पहला गिट मर्ज कभी भी (रोमांचक!) करने की कोशिश कर रहा हूं, लेकिन विंडोज़ पर टोर्टोइजमेज (1.6.11.20210 x64) को पहचानने के लिए गिट गुई (0.13.GITGUI गिट 1.7.4.msysgit.0 से) प्राप्त नहीं कर सकता है। 7 पर an answer to a similar question आधार पर, मैं निम्नलिखित विन्यास परिवर्तन किए हैं:मैं विंडोज पर अपने गिट मर्ज टूल के रूप में क्यों TortoiseMerge का उपयोग नहीं कर सकता?

$ git config --global merge.tool tortoisemerge 
$ git config --global mergetool.tortoisemerge.cmd 'TortoiseMerge.exe -base:"$BASE" -mine:"$LOCAL" -theirs:"$REMOTE" -merged:"$MERGED"' 
$ git config --global --list 
...snip... 
merge.tool=tortoisemerge 
mergetool.tortoisemerge.cmd=TortoiseMerge.exe -base:"$BASE" -mine:"$LOCAL" -theirs:"$REMOTE" -merged:"$MERGED" 
$ 

दुर्भाग्य से, जब मैं Git गुई शुरू करने और "रन मर्ज उपकरण" करने का प्रयास, मैं त्रुटि Unsupported merge tool 'tortoisemerge' प्राप्त करते हैं।

क्या कोई मुझे बता सकता है कि मैंने क्या गलत किया है? यहाँ मेरी ~/.gitconfig के प्रासंगिक अनुभाग है:

[merge] 
     tool = tortoisemerge 
[mergetool "tortoisemerge"] 
     cmd = TortoiseMerge.exe -base:\"$BASE\" -mine:\"$LOCAL\" -theirs:\"$REMOTE\" -merged:\"$MERGED\" 

अद्यतन

TortoiseMerge ऊपर config के साथ ठीक काम करता है जब कमांड लाइन से git mergetool चल रहा है। ऐसा लगता है कि केवल गिट गुई के साथ समस्याएं हैं। : -/

+0

क्या आपके पथ में 'TortoiseMerge.exe' है? क्या आपने पूरा पथ निर्दिष्ट करने का प्रयास किया है? –

+0

@ बेन - यह वास्तव में मेरे रास्ते में है, और पूर्ण पथ को निर्दिष्ट करने का कोई प्रभाव नहीं प्रतीत होता है। : -/ –

+0

क्या आपके पास उन फ़ाइलों में कोई स्थान है जो आप विलय करना चाहते हैं? – VonC

उत्तर

52

अद्यतन:

मूल जवाब अब अप्रचलित है।

आप नवीनतम Git है, तो बस एक बार की git config merge.tool tortoisemerge

महत्वपूर्ण कार्य करें: आदेश के लिए एक .exe एक्सटेंशन जोड़ नहीं है।

=== मूल जवाब (अब पुरानी हो चुकी) ===

मैं tortoisemerge स्थापित तो मैं इस परीक्षण नहीं कर सकते नहीं है, लेकिन मैं बहुत यकीन है कि समस्या यह है कि Git जीयूआई का उपयोग करता है है सी: \ प्रोग्राम फ़ाइलें (x86) \ Git \ share \ git-gui \ lib \ mergetool.tcl नामक एक फ़ाइल जिसे प्रत्येक मर्ज टूल को परिभाषित करने के लिए परिभाषित किया गया है, और यह दिखाता है कि "असमर्थित विलय उपकरण" त्रुटि में परिभाषित मर्ज टूल के लिए त्रुटि है। gitconfig जो mergetool.tcl में परिभाषित किसी एक से मेल नहीं खाता है।

तो, इसे काम करने के लिए, आपको इस तरह कुछ मर्जेटूल में जोड़ने में सक्षम होना चाहिए।tcl:

tortoisemerge { 
    set cmdline [list TortoiseMerge.exe -base:"$BASE" -mine:"$LOCAL" -theirs:"$REMOTE" -merged:"$MERGED"] 
} 

यह अन्य कोड के ऊपर स्थित नया tortoisemerge प्रविष्टि रखो:

default { 
     error_popup [mc "Unsupported merge tool '%s'" $tool] 
     return 
} 
+6

ठीक है, मैं डर जाएगा। दो साल बाद और हमें अंत में मिला है इस के लिए समाधान! –

+0

मेरे पास 64 बिट विंडोज़ पर नवीनतम गिट-टू-विंडोज 2.12.2 इंस्टॉल है, लेकिन tortoisegitmerge.exe पाथ में नहीं है, इसलिए दोनों अद्यतन उत्तर और पुराना उत्तर काम नहीं करता है। दोनों ने रिपोर्ट किया: असमर्थित विलय उपकरण 'tortoisemerge'। जबकि, मेरा कछुआ 'ई: \ प्रोग्राम फ़ाइलें \ TortoiseGit \ bin \ TortoiseGitMerge.exe' में स्थापित है। तो, कोई विचार? धन्यवाद। – ollydbg23

+0

पूरी तरह से टिप्पणी करें। बहुत अच्छी तरह से काम करो! –

17

इस प्रयास करें:

[merge] 
tool = tortoise 

[mergetool "tortoise"] 
cmd = "TortoiseMerge.exe" -base:"$BASE" -theirs:"$REMOTE" -mine:"$LOCAL" -merged:"$MERGED" 

स्रोत: http://programmersunlimited.wordpress.com/2010/07/01/getting-git-to-use-tortoisemerge/

+1

वही समस्या, मुझे डर है। (हालांकि अब त्रुटि 'असमर्थित मर्ज टूल' कछुआ 'है।) –

+7

को पूरा पथ डालना और डबल कोट्स से बचना पड़ा: 'cmd = \" "c :/प्रोग्राम फ़ाइलें/TortoiseSVN/bin/TortoiseMerge.exe "\" -बेस: "$ BASE" -theirs: "$ Remote" -mine: "$ LOCAL" -merged: "$ MERGED" ' – lkuty

+1

मुझे कोई समस्या थी फाइलें, जिनमें उनके नामों में रिक्त स्थान हैं। और यह वाक्यविन्यास समस्या को हल कर सकता है: 'cmd = \" "c:/प्रोग्राम फ़ाइलें/टोर्टोइस जीआईटी/बिन/टोर्टोइज गिटमेर्ज.एक्सई" \ "-माइन \" $ रिमोट \ "-बेस \ "$ LOCAL \" 'यह TortoiseGitMerge के लिए काम करता है, TortoiseMerge – Kai

2

कोशिश यकीन है कि यह रास्ते में है बनाने के लिए कमांड लाइन से TortoiseMerge.exe टाइपिंग। यदि इसे मेरे कंप्यूटर> गुण> उन्नत> पर्यावरण चर> सिस्टम चर के माध्यम से नहीं जोड़ना है: पथ।

फिर कमांड प्रॉम्प्ट से निम्न कमांड

git config --replace --global diff.tool tortoisemerge 
git config --replace --global difftool.diffmerge.cmd "TortoiseMerge.exe -base:\"$BASE\" -theirs:\"$REMOTE\" -mine:\"$LOCAL\" -merged:\"$MERGED\"" 
git config --replace --global difftool.prompt false 

के माध्यम से इसे कॉन्फ़िगर अपना Git कार्यशील निर्देशिका के भीतर अपने से कमांड प्रॉम्प्ट, प्रकार git difftool से इसका इस्तेमाल करने के लिए।

यह एक समय में फ़ाइलों को दिखाता है ताकि आप अभी भी टोर्टोइज गिट स्थापित करने से बेहतर हो सकें जिससे चीजों को संभालना आसान हो जाता है, भले ही केवल भिन्न भाग के लिए।

+0

गिट cmd से सभी संघर्ष फ़ाइलों को मर्ज करने के लिए मैं GUI आधारित टूल कैसे खोल सकता हूं? – Master

4

मामले है कि मैं पर काम कर रहा था के लिए, mergetool पहले से ही tortoisemerge स्थापित किया गया था, लेकिन यह यह नहीं पा सके।

पूरी तरह से योग्य स्थान उपलब्ध कराना विंडोज में काम किया:

git config --global mergetool.tortoisemerge.cmd "\"C:\\Program Files\\TortoiseGit\\bin\\TortoiseGitMerge.exe\" -base:\"$BASE\" -mine:\"$LOCAL\" -theirs:\"$REMOTE\" -merged:\"$MERGED\"" 
1

यह समस्या नवीनतम Git में हल दिखाई देता है (मैं git version 1.9.4.msysgit.1 है)।

C:\git\build>git mergetool 

This message is displayed because 'merge.tool' is not configured. 
See 'git mergetool --tool-help' or 'git help config' for more details. 
'git mergetool' will now attempt to use one of the following tools: 
tortoisemerge emerge vimdiff 

C:\git\build>git config merge.tool tortoisemerge 

C:\git\build>git mergetool 
No files need merging 

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

  • कोई संबंधित समस्या नहीं^_^