Kilka dni temu, robiąc porządki w swoich zakładkach natknąłem się na link do ciekawego projektu noszącego nazwę Gource . Opisywany program służy do tworzenia wizualizacji zmian jakie zachodzą w repozytorium naszego projektu. Animację wygenerowane przez program prezentują drzewo repozytorium na którym widać jakie piki zostały utworzone/zmienione/usunięte przez wszystkich kolaborantów. Gource współpracuje z systemami kontroli wersji takimi jak SVN, CVS , Git. Poniżej znajdziecie filmik prezentujący wizualizacje zmian jakie zachodziły w repozytorium jednego z projektów, które współtworzę.
W dalszej części wpisu znajdziecie opis jak wygenerować tego typu wizualizację.
Opis będzie bazował na repozytorium opartym o System kontroli wersji SVN, ale jak wcześniej napisałem można to też zrobić dla repozytoriów przechowywanych w CVS czy Git.
Nie będę tu opisywał jak zainstalować gource bo jest to zalezne od posiadanej przez nas dystybucji, w fedorze można to zrobić poprzez 'yum install gource'
. Poza samym Gource będziemy potrzebować skryptu w pythonie który nam przekonwertuje plik z logiem wygenerowanym przez SVN do formatu wykorzystwanego przez Gource.
cd /tmp/ wget http://gource.googlecode.com/files/svn-gource-1.2.tar.gz tar xvf svn-gource-1.2.tar.gz cd glowny-katalog-projektu svn log --verbose --xml > /tmp/moj-projekt.log cd /tmp/ python svn-gource.py --filter-dirs moj-projekt.log > moj-projekt-gource.log gource -s 1 -a 1 --log-format custom /tmp/moj-projekt-gource.log --title "Moj projekt" --bloom-multiplier 0.1 --bloom-intensity 0.1 --background 010E16 |
Jesli chemy utworzyć film zawieracjący nasza wizualizację potrzebujemy mieć zainstalowany w naszym systemie ffmpeg.
gource -s 1 -a 1 --log-format custom /tmp/moj-projekt-gource.log --title "Moj projekt" --bloom-multiplier 0.1 --bloom-intensity 0.1 --background 010E16 --stop-at-end --output-ppm-stream - | ffmpeg -y -b 3000K -r 60 -f image2pipe -vcodec ppm -i - -vcodec libx264 -vpre slow /tmp/moj-projekt.mp4 |
W razie problemów zachęcam do odwiedzin strony projektu.