gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 13:13:04 25 4
gpt4 key购买 nike

在机器 A 上,git mergetool 按预期运行 Beyond Compare 3。在机器 B 上,BC3 启动但未在命令行上传递任何参数,因此显示介绍屏幕而不是实际 merge 。

我将配置从机器 A 复制到机器 B,除了安装路径和 push.default=simple 之外,git config --list 是相同的:

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(不能工作的那个)在 Win8 32 位下有 git 1.8.4。

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

"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 上,它只是:

c:\Apps\BeyondCompare3\BCompare.exe

这里需要什么魔法咒语?

最佳答案

只是猜测:如果 Git 已经(在其出厂配置中)知道 bc3 工具,它将使用 mergetool.bc3.path 以及标准参数。如果没有,它会寻找 mergetool.bc3.cmd,但是这个需要在命令中指定正确的参数:

mergetool.bc3.cmd="'c:/apps/BeyondCompare3/bcomp.exe' '$LOCAL' '$REMOTE' '$BASE' '$MERGED'"

由于一个模糊的原因,在机器 B 上 Git 不知道 bc3 的调用,并且使用 mergetool.bc3.cmd 回退,这在你的情况下错过了正确的争论。在机器 A 上,Git 知道如何与 BC3 对话,并将使用正确的工具调用,仅使用 mergetool.bc3.path

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

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

关于Git 在没有任何参数的情况下启动 mergetool,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20636392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com