我刚开始第一次使用“git”,并且已经从Ubuntu 10.4 / AMD64发行版(即,也许不是“最新”版本,但不是很古老)安装了git和gitg。

我正在尝试查看我通过gitg提交的go代码,并在“树选项卡”中显示:

Cannot display file content as text.

但是,“详细信息选项卡”显示的是同一文件的差异。
我知道gitg的“树选项卡”正在工作,因为我可以在*.c / *.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.lang”)中,它应该可以工作。

    实际上,声明不在gitg中:g_content_type_is_aglib\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
    

    08-27 05:18