我刚开始第一次使用“git”,并且已经从Ubuntu 10.4 / AMD64发行版(即,也许不是“最新”版本,但不是很古老)安装了git和gitg。
我正在尝试查看我通过gitg提交的go代码,并在“树选项卡”中显示:
Cannot display file content as text.
但是,“详细信息选项卡”显示的是同一文件的差异。
我知道gitg的“树选项卡”正在工作,因为我可以在
*.c
/ *.html
/ *.txt
等上使用树状视图。<question>
是否可以调整gitg以了解“* .go”只是文本? </question>
一些上下文:
我确实有一个有效的
/usr/share/gtksourceview-2.0/language-specs/go.lang
。它可以用作gedit中的荧光笔。
看来gitg可能要求可显示文件的mime类型为“
text/plain
”,因此我将其添加到go.lang中。不开心gitg在
*.go
上仍然失败。我比较确定修复方法很简单,只是不知道在哪里看。
最佳答案
对于 gitg alt text http://trac.novowork.com/gitg/chrome/site/logo.png(面向gtk + / GNOME的git存储库查看器),look at its code(also here)可能很有趣:
特别地, gitg-commit-view.c
显示该消息是因为其功能 gitg_utils_can_display_content_type()
返回未知类型以用于文本显示。
gboolean
gitg_utils_can_display_content_type(gchar const *content_type)
{
return g_content_type_is_a(content_type, "text/plain") ||
g_content_type_equals(content_type, "application/octet-stream");
}
因此,您确实需要将go文件类型声明为
text/plain
(在gitg中,而不是“to.lang”)中,它应该可以工作。实际上,声明不在gitg中:
g_content_type_is_a
是glib\gio\gcontenttype.c
( project glib )的函数,它调用get_registry_classes_key()
,后者读取注册表(Windows的HKEY_CLASSES_ROOT
, mime type registered for Unix OP Hotei )。因此,如果您注册go文件,它应该可以工作:
xdg-icon-resource install --context mimetypes --size 48 go-type.png plain/text
要注册的xml文件(由ojit_a找到,很棒的工作!)
<?xml version="1.0" encoding="utf-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
<mime-type type="application/x-extension-go">
<sub-class-of type="text/plain"/>
<comment>go for files</comment>
<glob pattern="*.go"/>
</mime-type>
</mime-info>
xdg-mime install go-mime.xml
update-desktop-database