如何在Windows上将Meld用作与Sourcetree的合并工具?

问题描述 投票:28回答:5

我的.gitconfig文件中包含以下内容:

[user]
    name = myname
    email = [email protected]
[core]
    autocrlf = true
    excludesfile = C:\\Users\\myname\\Documents\\gitignore_global.txt
[diff]
        tool = meld
[difftool "meld"]
        cmd = "C:/Program Files (x86)/Meld/meld/meld.exe"
        prompt = false
[merge]
        tool = meld

[mergetool "meld"]
        cmd = "C:/Program Files (x86)/Meld/meld/meld.exe"
[difftool "sourcetree"]
    cmd = "C:/Program Files (x86)/Meld/meld/meld.exe $PWD/$LOCAL $PWD/$BASE $PWD/$REMOTE"
[mergetool "sourcetree"]
    cmd = 'C:/Program Files (x86)/Meld/meld/meld.exe' \"$LOCAL\" \"$REMOTE\" \"$MERGED\"
    trustExitCode = true

并且在Sourcetree中,我有以下设置:

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9HTlp0OS5wbmcifQ==” alt =“在此处输入图像描述”>

但是,当我右键单击Sourcetree上的文件以进行外部比较时,我可以打开Meld,但是文件的内容根本没有显示。

“在此处输入图像描述”

我在设置上做错了什么?

atlassian-sourcetree meld
5个回答
28
投票

我认为现有答案略有偏离重点。这是我自己的狗粮:

Enter image description here

参数详细信息:

Diff:  $LOCAL $REMOTE
Merge: $LOCAL $BASE $REMOTE --auto-merge --output=$MERGED

对于External Diff,您需要从参数列表中删除$ BASE。

对于三路合并,您需要单击External Merge Tool选项,仅当存在任何未解决的冲突时,该选项才可用。

Context menu of External Merge Tool

如果您不局限于Sourcetree + Meld,我认为Git Extensions + KDiff3套件也可以是一个很好的开源替代方案。


20
投票

此处使用的实际设置是为了进行真正的三向合并,并带有只读的THEIRS和MINE选项卡:

$LOCAL $BASE $REMOTE --auto-merge --output=$MERGED

注意=之后的--output

我终于通过对此问题的第二个答案Git merging using Meld的注释中找到了正确的命令。


6
投票

对于OS X,它看起来像这样:

  • Diff命令:/Applications/Meld.app/Contents/MacOS/meld

    • 参数:@LOCAL @REMOTE
  • 合并命令:/Applications/Meld.app/Contents/MacOS/meld

    • 参数:$LOCAL $BASE $REMOTE --auto-merge --output=$MERGED

P.S。

要从命令行使用它,您必须通过brew安装它:brew install meld

Sourcetree preferences pane


2
投票

如果您不想修改PATH环境变量,则可以使用DOS兼容的短名称:

C:\Progra~1 = C:\Program Files
C:\Progra~2 = C:\Program Files (x86)

这避免了在路径中造成麻烦的空间,并且与Sourcetree配合得很好。它有点黑,但是可以用。然后,您可以使用类似这样的路径作为Meld的路径:

C:\Progra~1\Meld\meld.exe

无法保证Progra〜1映射到64位目录,因此您可能需要尝试将哪个映射到哪个。


1
投票

尝试将meld.exe的位置添加到您的PATH(例如C:\ Program Files(x86)\ Meld),然后在Diff Command中,输入meld而不是完整路径。参见要点How to use meld with Sourcetree on Windows

© www.soinside.com 2019 - 2024. All rights reserved.