2010-04-30 3 views
1

처음에는 "git"을 처음 사용하고 있고, 우분투 10.4/AMD64 배포판 (즉, 최신 버전이 아니라 고대 버전이 아닌)에서 git 및 gitg를 설치했습니다. 내가 gitg를 통해하고 "트리 탭"에 최선을 다하고 한 이동 코드를 볼하려고gitg의 이동 가능한 소스 목록에 어떻게 추가합니까?

는 말한다 :

그러나
Cannot display file content as text. 

는, "세부 사항 탭"같은 파일의 차이점을 보여줍니다 잘 됐네.
*.c/*.html/*.txt 등의 트리보기를 사용할 수 있기 때문에 gitg의 "트리 탭"이 작동하고 있다는 것을 알고 있습니다.

<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에서 실패합니다.
저는 수정 사항이 간단하다는 것을 확신합니다. 어디를 봐야할지 모르겠습니다. 이 gitgalt text http://trac.novowork.com/gitg/chrome/site/logo.png (망할 놈의 저장소 뷰어 타겟팅 GTK +/GNOME)에 관해서

답변

1

, 그것은 look at its code에 (also here)을 흥미로운 일이 될 수 있습니다 특히

, 그 기능이를 반환 gitg_utils_can_display_content_type() 때문에 gitg-commit-view.c이 표시하는 메시지 텍스트 표시를위한 알 수없는 유형.

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.lang하는"gitg에) text/plain로 이동 파일 형식을 선언해야합니까 그것은 작동합니다.


사실, 선언은 gitg에되지 않습니다 : g_content_type_is_aglib\gio\gcontenttype.c (project glib)의 함수이며, 레지스트리를 읽을 get_registry_classes_key() (Windows 용 HKEY_CLASSES_ROOT, mime type registered for Unix)를 호출합니다. 당신이 이동 파일을 등록하면

그래서, 그것은 작동합니다 :

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 
+0

VonC를, 그 선을 보았다.나는 gitg이 "테이블 구동"이라고 가정하고 있는데, 어떤 파일이 표시 가능한지를 결정할 때, 그리고 그 파일에 대한 응답을 gtk에 요청할 것입니다. 그런 다음 Gtk는 sourceview-2.0 디렉토리를보고 * .lang을 검사하여 일치하는 항목을 찾습니다. 전에 GTK를 사용하지 않았기 때문에 추측이지만 비교적 정확하다고 확신합니다. 여기에 언급 된 함수를 찾았습니다 ... g_content_type_is_a (content_type, "text/plain") 을 반환하지만 gitg/gitg 디렉토리의 grep은 nil을 반환합니다. 그 기능은 gk가 아닌 gtk 패키지의 일부라고 생각하게한다. 아직 검색 중입니다 ... – Hotei

+0

@Hotei : 동일한 grep, 같은 결과가 여기에 있습니다! – VonC

+0

@Hotei : 오른쪽 : gio/gcontenttype.c의 glib (http://www.gtk.org/download.html) 일부. 지금 당장 그것을 보아라. – VonC

관련 문제