100

Linux では、私のお気に入りのマージ ツールは Meld であり、Git で動作するように使用または構成するのに問題はありませんでした。ただし、Windows では話が異なります。

最初に、ここで見つけたバンドルから Meld をインストールしました: https://code.google.com/p/meld-installer/

次に、デフォルトのmergetoolとしてMeldをサポートするように.gitconfigを構成しました

[merge]                                                      
    tool = meld                                                                         

[mergetool "meld"]                                           
    path = C:\\Program Files (x86)\\Meld\\meld\\meld.exe
    keepBackup = false                                   
    trustExitCode = false

したがって、競合が発生した場合、私は git difftool を実行し、Meld は実際に開きます。ただし、差分ツールに渡すために Git が書き込むファイルへのパスは正しくありません。たとえば、Git はリポジトリ ディレクトリ (私が git mergetool を呼び出した場所) に BASE、LOCAL、および REMOTE ファイルを生成しますが、Meld は実行可能ファイルのディレクトリにあるこれらの各ファイルを開こうとします。

C:\repo\roses.txt.LOCAL.2760.txt を開く代わりに、Meld は C:\Program Files (x86)\Meld\meld\roses.txt.LOCAL.2760.txt を開こうとします。

Windowsで正しく動作するようにGit / Meldを構成する方法を知っている人はいますか?

4

9 に答える 9

27

Schuess、ディレクトリ内の空白文字に注意してください!

[merge]
    tool = meld
[mergetool "meld"]
    prompt = false
    keepBackup = false
    keepTemporaries = false
    path = C:/Program Files (x86)/Meld/Meld.exe
    cmd = \"/C/Program Files (x86)/Meld/Meld.exe\" \"$PWD/$LOCAL\" \"$PWD/$BASE\" \"$PWD/$REMOTE\" \"--output=$PWD/$MERGED\"
于 2013-02-25T18:57:21.040 に答える
10

私はまったく同じ問題を抱えていましたが、それを機能させるには力ずくの方法が必要であることがわかりました。これが私の .gitconfig ファイルに入れたものです。(私のメルド実行可能ファイルは別の場所にあることに注意してください)

[merge]
    tool = meld
[mergetool "meld"]
        cmd = "/c/Meld/meld/meld.exe $PWD/$LOCAL $PWD/$BASE $PWD/$REMOTE --output=$PWD/$MERGED"
于 2013-02-20T01:56:56.247 に答える
4

私も同様の問題に直面しました。使用されているオペレーティング システムは Windows 10 であり、次の変更でうまくいきました。パスの問題のようです。

git config --global mergetool.meld.path "/c/Program Files (x86)/Meld/Meld.exe" <- path to meld here
于 2016-11-18T12:24:47.687 に答える
2

答えはどれも私にとってはうまくいきませんでした。私は.gitconfig-fileでこれで終わった:

[merge]
  tool = meld
[mergetool "meld"]
  cmd = 'C:/Program Files (x86)/Meld/Meld.exe' $LOCAL $BASE $REMOTE --output=$MERGED
[mergetool]
  prompt = false

git merge mybranch衝突で終わった後は、入力git mergetoolしてメルドオープンするだけです。保存後、git でコミットする必要があり、競合は解決されます。

何らかの理由で、これは Meld 3.18.x でのみ機能し、Meld 3.20.x ではエラーが発生します。

于 2019-02-06T13:30:01.290 に答える
0

上記のすべてを試した後、管理者として実行するようにMeldを設定するとうまくいきました。

  1. Meld.exeを右クリック
  2. [プロパティ] > [互換性]に移動し、Run this program as an administratorチェックボックスを選択します

私が受け取ったエラーはc:\windows\temp\meld-*、作成されていない のような一時ファイルを参照していました。Meld のアクセス許可を昇格させると、git difftoolMeld 内で手動で実行することと手動で実行することの両方で機能するようになったため、うまくいくようです。

于 2016-12-16T17:55:35.283 に答える