Gource 소스 저장소 시각화 프로그램

LWN.net 기사 중에서 소스 코드 작업 시각화 관련 기사를 보고 재미있을 것 같아 Gource 프로그램을 이용해 회사에서 진행중인 프로젝트에 적용해 보았습니다.

http://www.youtube.com/watch?v=RUwDxM28EBA

만드는 방법은 우선 필요한 패키지를 설치하고(Ubuntu 기준)

$ sudo apt-get install gource ffmpeg

Git 저장소가 있는 디렉토리로 이동해서 다음과 같이 실행합니다.

$ gource \
    -s 0.01 \
    --auto-skip-seconds 0.1 \
    --file-idle-time 500 \
    --disable-progress \
    --output-framerate 25 \
    --highlight-all-users \
    -800x600 \
    --stop-at-end \
    --output-ppm-stream - | \
  ffmpeg \
    -y \
    -b 1000K \
    -r 17 \
    -f image2pipe \
    -vcodec ppm \
    -i - \
    -vcodec mpeg4 \
    gource-edc-20100423.avi

프로젝트에 참여했던 사람들 이름이 나타났다 사라지는 걸 보면 기분이 약간 묘해지는 것 같습니다 ;)

Creative Commons License
This work, unless otherwise expressly stated, is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 2.0 Korea License.
This entry was posted in 카스탈리엔 and tagged , , . Bookmark the permalink.

6 Responses to Gource 소스 저장소 시각화 프로그램

  1. 아헿헿 says:

    오 ~ 뭔가 굉장히 신기하네요

    안녕하세요 구글에서 GLIB 관련 검색하면 이 블로그가 꼭 나오네요ㅋㅋ

    초면에 정말 죄송하지만 glib 관련해서 하나 여쭤봐도 될까요? 사소한 건데요…

    저는 GLIB를 개인적인 목적으로 사용하기 위해서 제가 기존에 만들어놓은 윈도우용 static library에 GLIB 소스를 몽땅 집어넣고 사용중인데요

    그런데 라이브러리를 사용했던 프로그램이 종료되면 항상 메모리 릭이 있다고 나오는데 해결방법이 궁금합니다…

    메모리 누수는… g_type_init()이나 g_thread_init() 에서 초기화 하면서 할당받았던 메모리들을 해제 하지 않아서 그러는것 같습니다…

    물론 … 어자피 프로그램은 종료될것이라서… 메모리 누수라고 생각하지 않을수도 있는데…

    프로그램 종료 후 디버그 창에 굉장히 많은 메모리 릭이 디텍트 됐다고 나와서 정말 너무 지저분해요…

    혹시 g_type_init() 으로 초기화 한뒤에 g_type_finalize() 같은 함수가 따로 있나요?

    예를들어보면 g_value_c_init에서 할당받은 transform_array는 해제하는 곳이 없는것 같습니다…

    구글 검색은 계속 해보겠지만 … 혹시 정보가 있으시면 알려주시면 감사하겠습니다.

    그럼 항상 좋은 정보 감사합니다. 즐거운 하루 되세요~

    • lethean says:

      g_type_init() / g_thread_init() 호출 뿐 아니라 GObject 객체를 처음 만들때 자동으로 등록되는 클래스 객체 등록 정보도 초기화 이후 해제하지 않습니다. 그래서 Valgrind 메모리 누수 디버깅에도 아예 관련 루틴을 무시(suppression)하도록 하는 방법을 사용합니다. http://live.gnome.org/Valgrind 페이지를 참조하시기 바랍니다.

      • 아헿헿 says:

        헉 혹시나 하고 와봤는데 답글이 남겨져 있어서 정말 깜짝 놀랬네요~

        답변 정말 감사합니다. 엉뚱한 댓글로 질문을 드려서 혹시 기분 나쁘지 않으시려나 걱정했는데;; 감사합니다

        하시는일 모두 잘되시고 앞으로도 공부를 위해서 블로그에 자주 들르겠습니다.

        감사합니다~~~ 수고하세요~~~

  2. 초보 says:

    안녕하세요 웹서핑 하다가 우연히 찾았네요 ㅎㅎ

    팀 프로젝트에서 가시화를 하는게 있어서 우연히 gource 라는 프로그램에서 이 아름다운 트리가 나오는것을 보고

    그래 이걸로 결정이다! 라고 하고 공부좀 할라 하니까 난감하네요 ;;;;;

    임베디드 OS 리눅스 객체 이런것이 전혀 아무런 개념이 안 박혀있는 2학년 공돌이입니다…

    일단 gource를 구글링으로 0.26 버전인가를 다운 받았는데….exe파일 돌려봐도 커맨드창 잠깐 뜨더니

    다시 꺼지네요;;;

    그래서 다시 님꼐서 써놓으신 ubuntu 에 대해서 막 검색하는데 이것도 설치하려면

    가상 OS 에 설치해야되고;;; 그리고 이걸 설치한다고 해도 어떻게 gource를 실행하는지도 모르겠고

    위에 작성자분꼐서 써놓으신 코드는 또 어디다 넣어야 되고

    아무것도 모르겠네요;;

    아 아무것도 모르는데 너무 어려운걸 주제로 선정한게 아닌가 싶네요 ㅜㅜ

    초보를 위해 실행법이라던가 편집법 조금더 설명을 해주시면 감사하겠습니다

    • keedi says:

      gource는 git 저장소를 시각화 해주는 도구입니다. 실제로 시각화를 위해 사용하는 소스는 git 저장소에 있는 커밋 로그입니다. 그래서 프로젝트에서 svn을 사용한다면 svn로그를 gource가 인지할 수 있도록 변환해주는 툴(http://code.google.com/p/gource/wiki/SVN)을 사용하면 됩니다. 다르게 이야기하면 gource가 인지할 수 있는 소스만 있으면 사실 저장소는 없어도 됩니다. 그리고 gource 자체로는 화면에 뿌려주는 역할이고 이것을 웹상에 올리거나 하려면 ffmpeg과 같은 툴이 필요한 것이죠. 그리고 우분투와 같은 리눅스를 사용한다면 설치 관리자가 제공하는 gource와 ffmpeg을 설치하는 것으로 충분합니다.

  3. 넷평 says:

    저희 스터디 저장소에서도 한번 돌려보았습니다. +_+//
    http://netpyoung.tistory.com/90
    (저번에 한번 해봤다가 안되길레 그냥 하다 말았는데 문제되는 부분만 살작 수정하여 try exception문으로 감싸니 성공하였습니다.)

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">