首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Git在没有任何参数的情况下启动mergetool。

Git在没有任何参数的情况下启动mergetool。
EN

Stack Overflow用户
提问于 2013-12-17 14:11:39
回答 1查看 251关注 0票数 6

在机器A上,git mergetool的运行超出了预期的比较3。在机器B上,BC3启动,但没有在命令行上传递任何参数,因此显示的是介绍屏幕,而不是实际的合并。

我将配置从机器A复制到机器B,git config --list与安装路径和push.default=simple是完全相同的

代码语言:javascript
复制
merge.tool=bc3
mergetool.bc3='C:/Apps/BeyondCompare3/BCompare.exe'
mergetool.bc3.cmd='C:/Apps/BeyondCompare3/BCompare.exe'
mergetool.bc3.path=C:\Apps\BeyondCompare3\bcomp.exe
push.default=simple

唯一的其他区别是机器A在Win7 64位下有git 1.7.11,而机器B(不工作的机器B)在Win8 32位下有git 1.8.4。

ProcessHacker显示,机器A上的命令行(对于完全相同的存储库,位对位)是:

代码语言:javascript
复制
"c:\Program Files (x86)\Beyond Compare 3\bcomp.exe" 
        ./somefile.cs.LOCAL.4192.cs 
        ./somefile.cs.REMOTE.4192.cs
        ./somefile.cs.BASE.4192.cs
        -mergeoutput=somefile.cs /BCompWnd=$00140644

在坏了的机器B上,它只是:

代码语言:javascript
复制
c:\Apps\BeyondCompare3\BCompare.exe

我在这里需要什么魔法咒语?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-20 12:46:58

猜测一下:如果Git (在工厂配置中)已经知道bc3工具,它将使用mergetool.bc3.path和标准参数。如果不是,它将查找mergetool.bc3.cmd,但是这个参数需要在命令中显示正确的参数:

代码语言:javascript
复制
mergetool.bc3.cmd="'c:/apps/BeyondCompare3/bcomp.exe' '$LOCAL' '$REMOTE' '$BASE' '$MERGED'"

由于一个不明确的原因,在机器B上,它不知道bc3的调用,而是使用mergetool.bc3.cmd返回,在您的例子中,mergetool.bc3.cmd遗漏了正确的参数。在机器A上,Git知道如何与BC3对话,并且将使用正确的工具调用,只使用mergetool.bc3.path

要在机器A和B上分别验证删除mergetool.bc3.cmdmergetool.bc3.path,行为应该与您所观察到的完全相同。

要修复它,请在mergetool.bc3.cmd上使用完整的调用。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20636392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档