9

我想将 WinMerge 设置为 VS 2015 中的默认差异工具,但我无法在全局范围内执行此操作。我需要编辑我的本地([solution dir]/.git/config)文件,它工作得很好,但是当我尝试全局编辑文件([User folder]/.gitconfig)时它在 VS 2015 中不起作用(使用标准的 VS diff 工具)。每次我向 Git 添加新解决方案时应用该设置有点烦人。

这是我的配置

[diff]
tool = winmerge
[difftool]
prompt = true
[difftool "winmerge"]
path = d:\\WinMerge\\winmergeu.exe
cmd = \"d:\\WinMerge\\WinMergeU.exe\" \"$LOCAL\" \"$REMOTE\"
[merge]
tool = winmerge
[mergetool]
prompt = true
[mergetool "winmerge"]
path = d:\\WinMerge\\winmergeu.exe
cmd = \"d:\\WinMerge\\winmergeu.exe\" -u -e -dl \"Local\" -dr \"Remote\" $LOCAL $REMOTE $MERGED
4

3 回答 3

13

我的路径上有 VS2015 SP1 和 WinMerge,在我的解决方案 .git/config 和 .gitconfig 中(在 C:\users\username 下)中没有设置任何内容,并且它正在工作:

[diff]
    tool = winmerge
[difftool "winmerge"]
    cmd = winmergeu.exe -e -ub -x -wl -u -maximise -dl "base" -dr "mine" \"$LOCAL\" \"$REMOTE\"
于 2016-02-23T10:51:41.553 回答
1

除了@gezzahead 所说的(我添加了一个guitool条目只是为了更好地衡量),我发现我所在的域策略创建了两个“主”目录,因此创建了两个 .gitconfigs - a) C:\users 的 windows 默认值\jsmith\.gitconfig 和 H:\.gitconfig(我的 H: 驱动器是映射到 IT 称之为“主文件夹”的驱动器)。

在我使用如下所示的内容创建符号链接(您需要对其进行编辑)后,Visual Studio 启动了 WinMerge。

mklink H:\.gitconfig C:\users\jsmith\.gitconfig

为了完整起见,我运行的是 Win10 x64、VS 2015 更新 2,下面是我的配置列表(略有删节)

PS> git config --global --list
user.name=John Smith
user.email=jsmith@example.com
diff.tool=winmerge
diff.guitool=winmerge
difftool.winmerge.path=c:/Program Files (x86)/winmerge/winmergeu.exe
difftool.winmerge.cmd=winmergeu.exe /e /x /u /wl /maximize -dl base -dr mine "$LOCAL" "$REMOTE"
于 2016-06-29T13:35:09.463 回答
-1

.gitconfig具有魔法的解决方案(VS 2015)。但是,Windows 资源管理器拒绝将文件重命名为.gitconfig. 我使用命令提示符重命名。

ren aaa ".gitconfig"

无需重新启动 Visual Studio。

于 2016-05-18T17:18:56.047 回答