与MELD Git的合并工具在Windows(Git mergetool with Meld on

2019-07-19 17:31发布

在Linux中,我最喜欢的合并工具是MELD,我已经使用或配置它使用Git的工作没有任何问题。 然而,在Windows中,它一直是一个不同的故事。

首先,我从捆绑我发现这里安装MELD: https://code.google.com/p/meld-installer/

然后,我配置了我的.gitconfig像这样支持MELD作为默认的合并工具

[merge]                                                      
    tool = meld                                                                         

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

所以,当我有冲突,我做的git difftool和MELD做事实上是开放。 然而,到了Git写入文件的路径传递到比较工具不正确。 例如,即使Git的产生基础,本地和远程文件存储库中的目录(位置我打电话从SVN合并工具),MELD试图在可执行文件的目录中打开每个这些文件。

而不是打开的C:\回购\ roses.txt.LOCAL.2760.txt,MELD尝试打开C:\ Program Files文件(x86)的\ MELD \ MELD \ roses.txt.LOCAL.2760.txt。

有没有人跑进这之前或不知道如何配置的Git /合并在Windows正常工作?

Answer 1:

为什么你不能使用git的bash的Windows?

安装后的MELD简单:

git config --global merge.tool meld
git config --global mergetool.meld.path "C:\Program Files (x86)\Meld\Meld.exe" <- path to meld here

就这样!



Answer 2:

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'


Answer 3:

我有完全相同的问题,并发现我有蛮力我的方式得到它的工作。 以下是我把我的.gitconfig文件。 (请注意我的MELD可执行文件在不同的位置)

[merge]
    tool = meld
[mergetool "meld"]
        cmd = "/c/Meld/meld/meld.exe $PWD/$LOCAL $PWD/$BASE $PWD/$REMOTE --output=$PWD/$MERGED"


Answer 4:

我发现在MELD安装程序的错误报告的解决方案,在此页:

https://code.google.com/p/meld-installer/issues/detail?id=11

据我理解,问题是,meld.exe程序(贯穿Python解释器MELD)无谓地设置命令的工作目录到meld.exe的。 这会导致当作为命令行参数传递相对路径被错误地解释。

解决的办法是与一个由编译meld.ahk文件生成替换提供meld.exe,使用AHK2EXe(AutoHotkey的脚本 - > EXE)。 只要下载脚本最远下来的页面,因为已经张贴有几个版本。



Answer 5:

我也面临着使用了类似的issue.Operating的系统是Windows 10和以下更改工作了me.It似乎更像是路径问题

git config --global mergetool.meld.path "/c/Program Files (x86)/Meld/Meld.exe" <- path to meld here


Answer 6:

您可以使用这两个命令( 如Arugin说 ) -使用正确的路径Meld.exe:

git config --global merge.tool meld
git config --global mergetool.meld.path "C:\Program Files (x86)\Meld\Meld.exe"

或者你可以编辑你的C:\Users\YOUR_USER_NAME\.gitconfig文件直接与以下内容添加到它的结束:

[merge]
  tool = meld
[mergetool "meld"]
  path = C:\\Program Files (x86)\\Meld\\Meld.exe

现在叫git difftool for Windows和MELD Git中的Bash将开辟为默认浏览器difftool。



Answer 7:

答案都不为我工作。 我结束了此在的.gitconfig文件:

[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和MELD打开。 后保存,你有git的承诺和冲突的解决。

出于某种原因,这只曾与MELD 3.18.x,MELD 3.20.x给我一个错误。



Answer 8:

尝试以上,创下MELD以管理员身份运行为我工作后。

  1. 用鼠标右键单击Meld.exe
  2. 转到属性 > 兼容性 ,并选择Run this program as an administrator复选框

这些错误我收到引用的临时文件像c:\windows\temp\meld-* ,它并没有被创建。 MELD提升的权限,似乎这样的伎俩,因为它现在的作品都git difftool和内MELD手动运行。



文章来源: Git mergetool with Meld on Windows
标签: git meld