我刚刚开始第一次使用“git”,并从 Ubuntu 10.4/AMD64 发行版安装了 git 和 gitg(即可能不是“最新”版本,但不是古代版本)。
我正在尝试查看我通过 gitg 提交的 go 代码,并在“树选项卡”中显示:
Cannot display file content as text.
但是,“详细信息选项卡”可以很好地显示同一文件的差异。
我知道 gitg 的“树选项卡”正在工作,因为我可以在 *.c
上使用 TreeView /*.html
/*.txt
等就好了。
<question>
有没有办法调整 gitg 以理解“*.go”只是文本? </question>
更多背景信息:
- 已安装的 gitg 版本是 0.0.5 - 即最新的版本 - 0.0.6 - 我现在正在查看它的来源。
我确实有一个工作 /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 go.lang”),它应该可以工作。
其实gitg中没有声明:g_content_type_is_a
是glib\gio\gcontenttype.c
的一个函数( project glib ) ,它调用 get_registry_classes_key()
,读取注册表(HKEY_CLASSES_ROOT
for Windows, mime type registered for Unix )。
因此,如果您注册 go 文件,它应该可以工作:
xdg-icon-resource install --context mimetypes --size 48 go-type.png plain/text
要注册的 xml 文件(由 OP Hotei 找到,干得好!)
<?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
关于git - 如何将 Go 添加到 gitg 的可视源列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2746237/