9

@VonCの優れた手順git difftool <BRANCH1> <BRANCH1>を使用して、 WinMergeを呼び出すように開発システムを構成しました。これが私がしたことです:

  1. 以下を配置しました~/.gitconfig

    [diff]

    tool = winmerge
    

    [difftool "winmerge"]

    cmd = winmerge.sh \"$LOCAL\" \"$REMOTE\"
    

    [difftool]

    prompt = false
    
  2. /usr/bin/winmerge.sh次のコンテンツでを作成しました。

    echo Launching WinMergeU.exe: $1 $2

    "C:/Program Files (x86)/WinMerge/WinMergeU.exe" -e -ub "$1" "$2"

を介してWinMergeを起動しようとするgit difftool <BRANCH1> <BRANCH1>と、正しいパラメータの受け渡しと思われるものが表示されます。

Launching WinMergeU.exe: /tmp/21qMVb_file1.c /tmp/1ACqik_file1.c

しかし、奇妙な理由で、WinMergeが2つのファイルを並べて表示する代わりに、最初のファイルを右側として入力し、2番目のファイルを左側として受け入れるように求めます。

[WinMergeは1つではなく2つのファイルを表示する必要があります

なぜこうなった?構成手順で何を見逃しましたか?

PSコマンドラインで入力するとwinmerge.sh file1.c file2.c、WinMergeは、期待どおりに2つのファイルをすぐに並べて表示します。

更新:うわー、Both paths are invalidWinMergeのプロンプトの下部にあるメッセージに気づきました(そしてそれを強調するためにスクリーンショットを更新しました)。これらのファイルは単にdifftoolによって生成されたものではないか、パスに問題があるようです。

4

1 に答える 1

6

私は問題を解決しました!

解決策は、同じスレッドの @pydave の回答によって提供されるヒントにあります。私がしなければならなかったのは、"$1" "$2"(winmerge.sh内の)をcygpath -w $1 cygpath -w $2.

今では美しく機能します。私が期待するのと同じように。

于 2011-07-11T14:00:33.643 に答える