【问题标题】:git difftool is not working as configured in .gitconfiggit difftool 没有按照 .gitconfig 中的配置工作
【发布时间】:2020-12-17 02:35:51
【问题描述】:

我使用 Beyond Compare 作为我的外部差异工具。当我在 .gitconfig 中的新计算机上配置它时,它不起作用,就像我在其他计算机上所做的那样。如果我用太多引号指定 extcmd,那么它确实有效。

现在和以前的一大区别是我在我的新存储库上使用 LFS。

.gitconfig 文件:

[diff]
    tool = bc4
    renameLimit = 999999
[difftool]
    prompt = false
[difftool "bc4"]
    cmd = 'C:/Program Files/Beyond Compare 4/BComp.exe' \"$LOCAL\" \"$REMOTE\"

不起作用(使用单引号或双引号):

$ git difftool --extcmd='C:/Program Files/Beyond Compare 4/BComp.exe' HEAD
C:/Program Files/Git/mingw64/libexec/git-core\git-difftool--helper: line 62: C:/Program: No such file or directory
fatal: external diff died, stopping at file.cs

有效:

git difftool --extcmd="'C:/Program Files/Beyond Compare 4/BComp.exe'" HEAD
  1. 我怎样才能让它工作,以便我可以使用git difftool HEAD

  2. 是 Git LFS 导致我的问题吗?

  3. 我的新计算机上是否有其他错误配置导致了我的问题?

我尝试将配置中的单引号 (') 更改为双引号 ("),但这也不起作用。

我在全新安装的 Windows 10 上使用 git 版本 2.29.2.windows.2。

编辑:忘记明确“不起作用”是什么意思: 它不会打开 Beyond Compare,但没有错误消息。几秒钟内它似乎什么也没做:

$ git difftool HEAD

$

我的整个 .gitconfig(以防万一):https://hastebin.com/icuduxecen.ini

【问题讨论】:

  • 你试过“C:\\Program Files\\Beyond Compare 4\\BComp.exe”吗?注意双引号而不是单引号和双\(转义)
  • 这样做会得到:$ git difftool --extcmd="C:\\Program Files\\Beyond Compare 4\\BComp.exe" HEAD C:/Program Files/Git/mingw64/libexec/git-core\git-difftool--helper: line 62: C:Program: command not found fatal: external diff died, stopping at file.cs
  • 将其放入配置中与原始设置的结果相同:几秒钟内什么也不做。

标签: git beyondcompare difftool


【解决方案1】:

除非您有特定原因指定完整的命令行来调用 Beyond Compare,否则只指定程序的路径:

[difftool "bc4"]
    path = "C:/Program Files/Beyond Compare 4/BComp.exe"

注意双引号和正斜杠。

编辑:请务必删除cmd = 行(或将其重命名为cmdxcmdx,或者如果您不想删除它,可以将其隐藏)。

【讨论】:

  • 同样的结果,git difftool HEAD 几秒钟内什么也没做。
  • GIT_TRACE=2 git difftool HEAD 是否提供线索?
  • 不确定这是什么意思:hastebin.com/toqokayifi.apache
  • 尚无定论。任何地方都没有明显的延迟。您是否与git diff HEAD(不包括tool)确认有任何变化?
  • 您必须删除 cmd 配置,因为我认为它优先于 path
【解决方案2】:

这实际上是 git 中的一个错误,在 v2.29.2(2) 中已修复。

https://github.com/git-for-windows/git/issues/2893

【讨论】:

    猜你喜欢
    • 2019-12-01
    • 1970-01-01
    • 2022-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多