git - 如何将 Go 添加到 gitg 的可视源列表?

标签 git go

我刚刚开始第一次使用“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_aglib\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/

相关文章:

go - 循环依赖和接口(interface)

go - 如何使用 minio-go api 从 s3 存储桶中获取按最后修改时间戳排序的对象列表?

go - 将闭包声明为循环(在性能上下文中)

go - 在 Go 中是否有静态方法来获取当前请求/上下文?

go - 如何让 Go 接受网络请求

windows - 将 VS Code 与 native Windows OpenSSH 客户端一起使用

git - 交互模式下的一些选择在 git 上不起作用

git 存储库在从 linux 中的 jenkins 连接时出现 403 错误

git - 在不透露过去提交的情况下公开 Git 仓库

git - Git 中的文件限制是多少(数量和大小)?