2011-07-11 12 views
7

私は開発システムを設定するために@ VonCのexcellent instructionsを使用して、git difftool <BRANCH1> <BRANCH1>がWinMergeを呼び出すようにしました。ここに私がやったことです:git difftool経由のWinMergeは、2番目のファイルを要求し続ける

  1. ~/.gitconfigに次のように置か:

    [差分]

    tool = winmerge 
    

    [difftool "WinMergeの"]

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

    [difftool]

    echo Launching WinMergeU.exe: $1 $2

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

、私はgit difftool <BRANCH1> <BRANCH1>経由のWinMergeを起動しようとすると、私は正しいパラメータの受け渡しのようだものを受け取る:次の内容の/usr/bin/winmerge.shを作成しまし

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

    しかし、いくつかの奇妙な理由で、2つのファイルを並べて表示する代わりに、の最初のファイルはとなり、2番目のファイルは左側に受け入れられます。

    [WinMerge should be displaying 2 files not one

    どうしてですか?設定のステップで私は何を欠場しましたか?

    P.S.私がコマンドラインwinmerge.sh file1.c file2.cを入力すると、WinMergeはすぐに2つのファイルを並んで表示します。

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

  • +1

    このバリエーションを試しましたか? http://stackoverflow.com/questions/255202/how-do-i-view-git-diff-output-with-visual-diff-program/4116806#4116806 – VonC

    +0

    @VonCまだ、しかし私の更新に注意してください問題は 'winmerge.sh'よりも早い段階にあります。私のシステム構成の不思議さは、私の '$ HOME =/'と' cygwin-1.7.8-1' + 'git version 1.7.4' +' Windows 7 Ultimate 64-bit' '/ home'に' // sambaserver/projshare'としてマウントされています。 – WinWin

    +1

    あなたの "HOME"をより一般的なPATHで定義する機会はありますか? 'C:\ ...'あなたのスクリプトは、Windows環境ではなく、bash環境でのみ動作します。 – VonC

    答えて

    5

    私はこの問題を解決しました。

    解決策は、@ pydaveのanswer in the same threadによって提供されるヒントにあります。私がしなければならなかったのは、"$1" "$2"(winmerge.sh内)をcygpath -w $1cygpath -w $2に置き換えただけです。

    今は美しく動作します。ちょうど私が期待するように。

    +1

    この回答に詳細を追加できますか? .gitconfigはどのようなものですか? – dezman

    +0

    私のために働くには、シェルスクリプトで実行する最後のコマンドはそうでした: "C:/ Program Files(x86)/WinMerge/WinMergeU.exe" -e -ub -dl other -dr local \ 'cygpath -aw $ 1 \ '\' cygpath -aw $ 2 \ ' – user470714

    関連する問題