【发布时间】:2011-07-11 13:16:59
【问题描述】:
我使用@VonC 的excellent instructions 来配置我的开发系统,以便git difftool <BRANCH1> <BRANCH1> 将调用WinMerge。这是我所做的:
-
将以下内容放在
~/.gitconfig:[差异]
tool = winmerge[差异工具“winmerge”]
cmd = winmerge.sh \"$LOCAL\" \"$REMOTE\"[差异工具]
prompt = false -
创建了一个
/usr/bin/winmerge.sh,内容如下:echo Launching WinMergeU.exe: $1 $2"C:/Program Files (x86)/WinMerge/WinMergeU.exe" -e -ub "$1" "$2"
现在,当我尝试通过 git difftool <BRANCH1> <BRANCH1> 启动 WinMerge 时,我收到了似乎是正确的参数传递:
Launching WinMergeU.exe: /tmp/21qMVb_file1.c /tmp/1ACqik_file1.c
但是,出于某种奇怪的原因,WinMerge 不是并排显示两个文件,而是提示输入 第一个 文件作为右侧,第二个文件被接受为左侧:
为什么会这样?我在配置步骤中遗漏了什么?
附:当我在命令行上键入winmerge.sh file1.c file2.c 时,WinMerge 立即并排显示这两个文件,正如我所期望的那样。
更新:哦,哇,我刚刚注意到 WinMerge 提示符底部的 Both paths are invalid 消息(并更新了屏幕截图以强调这一点)。看来这些文件根本不是由 difftool 生成的,或者路径有问题。
【问题讨论】:
-
你试过这个变体吗? stackoverflow.com/questions/255202/…
-
@VonC 还没有,但请注意我的更新指出问题早于
winmerge.sh。在我看来,我的系统配置的怪异对我不利...cygwin-1.7.8-1+git version 1.7.4+Windows 7 Ultimate 64-bit与我的$HOME=/home一起安装为//sambaserver/projshare在/home上。 -
有没有机会在更传统的路径上定义您的
HOME?C:\...很可能您的脚本只能在 bash 环境中工作,而不能在 Windows 环境中工作。 -
@VonC 我找到了解决方案! :)) 见下文。