Git扩展和Meld合并

6

在Windows上使用Git Extensions时,是否可以将Meld用作合并工具?

4个回答

3
在Git Extension中:设置 -> Git配置
Merge tool: meld
Path to mergetool: C:/Program Files (x86)/Meld/Meld.exe
Merge tool command: "C:/Program Files (x86)/Meld/Meld.exe" --diff "$BASE" "$LOCAL" "$REMOTE" --output "$MERGED"

这个答案对我来说没有保存合并后的文件,也不是git mergetool启动Meld的方式。请看下面我的答案,它使用了git的启动方式并正确保存了文件。 - Thomas W
我不完全清楚为什么,但是使用 --diff 标志后,--output 参数似乎被忽略了。删除它会导致文件正确保存到 $MERGED 中。(正如其他评论所建议的那样,这可能是 Meld 3.x vs 2.x 的问题?) - Coderer

1

Meld是默认的差异比较工具,但不是默认的合并工具。截至2016年5月9日,该问题仍未解决。 - cori
@cori 你说得对。如果你想要合并和差异,我会接受Tomasz的答案,因为它更有用。 - Drew Noakes

1
这个回答是正确的。另一个回答不能保存合并结果/更改到你的实际工作区文件!
在Git扩展中:设置-> Git配置
Mergetool = meld    (just type it in, don't use the combo)
Path to mergetool = </path/to/Meld.exe>
Mergetool command = </path/to/Meld.exe> \"$LOCAL\" \"$BASE\" \"$REMOTE\" --output \"$MERGED\"

我一直在尝试使用之前的答案和相关帖子来让Meld与GitExtensions配合使用。

这是一个修改后的答案——我之前发布了命令行“git mergetool”使用的内容,但那并没有提供一个干净的三方合并,而是中间窗格显示了冲突标记。

另请参阅我的GitHub评论(GitExtensions功能请求),其中讨论了这个问题。


我认为这是 Meld 3.0 及以上版本的正确答案。Meld 2.0 对于已接受的答案没有问题,但在 3.0 上无法工作。谢谢 Thomas W。 - CS Pei

1

像Thomas一样,被接受的答案对我并没有完全起作用。在meld关闭后,合并的文件没有保存。然而,Thomas的答案对我也没有起作用。虽然文件确实保存了,但它以合并标记在Meld中打开。

相反,我正在使用我一直在Sourcetree中使用的命令行。以下是对我有效的方法。

Mergetool command = </path/to/Meld.exe> \"$LOCAL\" \"$BASE\" \"$REMOTE\" --output=\"$MERGED\" --auto-merge

对我来说,末尾的 --auto-merge 是缺失的部分。 - nbout

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接