这是在最新版本的 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 时它会恢复。
有谁知道如何真正解决这个问题?