MeldをWindows上のGitで動作させた人はいますか?私はそれを機能させようとしていますが、成功していません。
Meldをインストールしましたが、コマンドラインから2つのファイルをパラメーターとして呼び出すと、それらの差分が適切になるため、Meldが正しくインストールされます。ただし、Git(Git Diff)で動作させることはできません。 Gitのバージョンgit version 1.8.1.msysgit.1
を使用しています。
私はいくつかのことを試しました:シェルスクリプトを作成しました、meld.sh
:
#!/bin/bash
meld.exe "$2" "$5"
echo $2
echo $5
そしてGitからそれを使用しました:
[diff]
tool = meld
[difftool "meld"]
cmd = \"D:\\meld.sh\"
私はそれを次のようなdifftoolとして追加しようとしました:
[diff]
tool = meld
[difftool "meld"]
cmd = \"C:\\Program Files (x86)\\Meld\\meld\\meld.exe\"
またはこのように:
[diff]
tool = meld
[difftool "meld"]
cmd = '\"/c/Program Files (x86)/Meld/meld/meld.exe\" $PWD/$LOCAL $PWD/$BASE $PWD/$REMOTE --output=$PWD/$MERGED'
しかし、それは実際には機能していないようです。また、シェルスクリプトからsecond($ 2)およびfifth($ 5)パラメーターをエコーしようとしましたが、出力されませんでした。また、いくつかの方法でバッチスクリプトを使用してみました。
meld.exe %2 %5
または
meld.exe %~2 %~5
しかし、実際には機能しません... Meldと比較するときにGit
が使用する2つのバージョンのファイルを渡すにはどうすればよいですか?それはかなり迷惑です...
通常、Windowsでは this Gist に似た例を見つけることができ、meld.exeはPATH
)にあります。
git config --global merge.tool meld
git config --global mergetool.meld.cmd 'meld.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"'
git config --global diff.tool meld
git config --global difftool.meld.cmd 'meld.exe \"$LOCAL\" \"$REMOTE\"'
より堅牢な設定は " Git mergetool with Meld on Windows "にありますが、考え方は同じです。
OPはコメントで報告します:
difftool
の場合、コマンドは.gitconfig
に次の構成を書き込みます。
[diff]
tool = meld
[difftool "meld"]
cmd = meld.exe \\\"$LOCAL\\\" \\\"$REMOTE\\\"
私はそれらを次のように変更しました:
[diff]
tool = meld
[difftool "meld"]
cmd = meld.exe $LOCAL $REMOTE
そして、すべてがうまくいきました。
またはさらに良いことに、パスをだますことが許可されていないロックダウンされたシステムを使用している場合、またはパススペースを汚染したくない場合は、Meldへのフルパスを設定できます。
また、現在の作業コードのコピーを左側に表示することを好むため、$ REMOTE引数と$ LOCAL引数を交換しました。また、\から/への変換に注意し、二重引用符をエスケープしないでください。
[diff]
tool = meld
[difftool "meld"]
cmd = \"C:/Program Files (x86)/Meld/meld/meld.exe\" $REMOTE $LOCAL
Windows 7(または他のバージョンのWindows)の場合は、これらの行を.gitconfig
ファイルに追加します。
[diff]
tool = meld
[merge]
tool = meld
[difftool "meld"]
path = C:/Program Files (x86)/Meld/meld/meld.exe
[mergetool "meld"]
path = C:/Program Files (x86)/Meld/meld/meld.exe
スペースが含まれている場合でも、パスに"
を使用する必要はないことに注意してください。バックスラッシュの代わりにスラッシュを使用することを忘れないでください。
Gitkからdiffを呼び出すユーザー向けのもう1つのヒント(コンテキストメニュー項目を右クリックして"External Diff"):
上記の設定は、gitkの設定によって上書きされる場合があります。その場合は、gitkのメニューのツールを変更してください編集→設定→ 一般→外部差分設定。
git config
を使用してパスを無効に設定しようとするいくつかのバリエーションを試しました。 Git BashコンソールウィンドウからMeldを使用したいので、パスをMeldディレクトリにエクスポートし、Bash Shellを再起動して、git difftool --tool-help
とgit mergetool --tool-help
がMeldを認識し、私はそれを私の好みのツールとして選ぶことができます。
。profile
export PATH=/c/Program\ Files\ \(x86\)/Meld/:$PATH
。gitconfig
[merge]
tool = meld
[diff]
tool = meld