2011-03-04 24 views
44

Git Gui(Git 1.7.4.msysgit.0の0.13.GITGUI)をWindows上でTortoiseMerge(1.6.11.20210 x64)を認識させることができません。 7. an answer to a similar questionに基づいて、私は次の設定変更を加えました:私はGitのGUIを起動し、「ファイル名を指定して実行ツールをマージ」しようとするとWindowsでgit mergeツールとして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" 
$ 

は残念ながら、私はエラーUnsupported merge tool 'tortoisemerge'を受け取ります。

誰でも私が間違っていることを教えてもらえますか?ここに私の~/.gitconfigの関連セクションです:

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

更新

TortoiseMergeのコマンドラインからgit mergetoolを実行するときに上記の設定で正常に動作します。 Git Guiだけに問題があるようです。 : -/

+0

パスに 'TortoiseMerge.exe'はありますか?フルパスを指定しようとしましたか? –

+0

@Ben - それは確かに私のパスにあり、完全なパスを指定することは効果がないようです。 :/ –

+0

マージしたいファイルにスペースがありますか? – VonC

答えて

52

UPDATE

オリジナルの答えは廃止されました。あなたは、最新のgitを持っている場合は

はただ一回git config merge.tool tortoisemerge

重要かを実行します。コマンドに.exe拡張子を追加しないでください。

===オリジナルの答え(現在時代遅れ)===

私はので、私はこれをテストすることはできませんTortoiseMergeのがインストールされていませんが、私はこの問題は、そのGitのGUIを使用していますかなり確信していますC:\ Program Files(x86)\ Git \ share \ git-gui \ lib \ mergetool.tclと呼ばれるファイルを使用して動作する各マージツールを定義し、「サポートされていないマージツール」エラーを表示します。 mergetool.tclに定義されているものと一致しないgitconfig

したがって、動作させるには、このようなものをmergetoolに追加する必要があります。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

2年後についにこれのための解決策! –

+0

最新のgit-for-windows 2.12.2が64ビットウィンドウにインストールされていますが、tortoisegitmerge.exeはPATHにありません。更新された回答と古い回答は機能しません。どちらも報告されています:サポートされていないマージツール 'tortoisemerge'一方、私のTortoisegitは 'E:\ Program Files \ 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

同じ問題ですが、私は恐れています(ただし、エラーは 'サポートされていないマージツール 'tortoise'です。) –

+7

フルパスを入れて二重引用符をエスケープしなければならなかった:' cmd = \ "" c :$ RASE "-mine:" $ LOCAL "-merged:" $ MERGED "' – lkuty

+1

私は問題を抱えていました。 'cmd = \" "c:/ Program Files/TortoiseGIT/bin/TortoiseGitMerge.exe" \ "-mine \" $ REMOTE \ "-base \ "$ LOCAL \" '。TortoiseMergeではなくTortoiseGitMergeで動作します。 – Kai

2

それがパスにあることを確認しますし、コマンドラインからTortoiseMerge.exeを入力してみてください。マイコンピュータ>プロパティ>詳細設定>環境変数>システム変数:パスで追加しない場合。

次に、コマンドプロンプトから、あなたのgitの作業ディレクトリ内のあなたからのコマンドプロンプトで、git difftoolからそれを使用するには、次のコマンド

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 

を経由して、それを構成します。

これはファイルを一度に1つずつ表示するので、diffパーツだけであっても、扱いやすいようにTortoiseGitをインストールする方がずっと優れています。

+0

GUIベースのツールを開いてGit cmdからすべての競合ファイルをマージする方法は? – Master

4

を、mergetoolはすでにTortoiseMergeのように設定したが、それはそれを見つけることができませんでした。完全修飾場所を提供

は、Windowsで働いていた:

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 
関連する問題