2

这是在最新版本的 git 上的最新 OSX 上。

问题是当你执行 'git gui blame' 时,一个非常烦人的错误列表会填满你的终端窗口,也就是说:

CFURLCopyResourcePropertyForKey 失败,因为它传递了一个没有架构的 URL

CFURLCopyResourcePropertyForKey 失败,因为它传递了一个没有架构的 URL

CFURLCopyResourcePropertyForKey 失败,因为它传递了一个没有架构的 URL

CFURLCopyResourcePropertyForKey 失败,因为它传递了一个没有架构的 URL

我环顾四周,看到其他帖子在谈论这个问题,没有一个谈论如何解决“git gui blame”。关于 gitk 的帖子是最接近的。

我尝试了“brew install tcl-tk”,但这并不能解决问题。我还升级到了最新的 git。

然后我又摸索了一下 git gui blame 是如何实现的,最终发现它最终执行了这个脚本:

/usr/local/Cellar/git/2.19.2/share/git-gui

其中包含

#!/bin/sh if test "z$*" = zversion || test "z$*" = z--version then echo 'git-gui version 0.21.GITGUI' else libdir="${GIT_GUI_LIB_DIR:-/usr/local/Cellar/git/2.19.2/share/git-gui/lib}" exec "$libdir/Git Gui.app/Contents/MacOS/Wish" "$0" "$@" fi

这里的“Wish”是一个使用 tcl-tk 内置版本的 OSX 应用程序。我想这解释了为什么安装新版本的 tck-tk 不会影响它,因为它有一个硬编码的路径到内置(旧)版本的 tcl-tk。

我可以通过更改 /usr/local/Cellar/git/2.19.2/share/git-gui 来隐藏错误消息,如下所示:

#!/bin/sh if test "z$*" = zversion || test "z$*" = z--version then echo 'git-gui version 0.21.GITGUI' else libdir="${GIT_GUI_LIB_DIR:-/usr/local/Cellar/git/2.19.2/share/git-gui/lib}" exec "$libdir/Git Gui.app/Contents/MacOS/Wish" "$0" "$@" 2>/dev/null fi

注意重定向“2>/dev/null”。

但是我觉得这并不是一个真正的解决方案,它只是隐藏了错误。另外,当我升级 git 时它会恢复。

有谁知道如何真正解决这个问题?

4

0 回答 0