Aplikacja Gource, który tworzy wizualizację zmian w oprogramowaniu. Gource generuje animację, która pokazuje jak zmieniał się projekt w repozytorium z biegiem czasu. Program wspiera takie systemy kontroli wersji jak Git oraz Mercurial. Możliwe jest wygenerowanie animacji również z poziomu CVSa oraz SVNa. Przygotowano do tego specjalnie skrypty. Program wydawany jest na licencji GPL v3.

Gource

Gource generuje animację, w której centralnym punkcie jest główny korzeń repozytorium. Od niego odchodzą kolejne branche oraz pojawiają się deweloperzy, którzy dokonują zmian na danych plikach. Jednak słowem trudno jest opisać obraz, dlatego wszystko powinna wyjaśnić poniższa animacja.

Aby wygenerować animację należy wydać dość długie polecenie:

gource --stop-at-end --output-ppm-stream - | ffmpeg -y -b 3000K -r 60 -f image2pipe -vcodec ppm -i - -vcodec libx264 gource.mp4

Spowoduje to wygenerowanie pliku gource.mp4 w formacie x264, 60 k/s. Za pomocą opcji --output-framerate można zmieniać ilość klatek na sekundę generowanych przez program. Wtedy należy dopasować tę liczbę również dla polecenia ffmpeg przy wykorzystaniu parametru -r.

Wygląd animacji

Można również sterować wyglądem samej animacji. Różnego rodzaju efekty możemy uzyskać dzięki opcji --bloom-multiplier oraz zmieniać jej intensywność za pomocą --bloom-intensity. Wyłączenie efektów możliwe jest dzięki parametrowi --disable-bloom. Parametr --background odpowiada za kolor tła animacji. Kolor podajemy w formacie HEX. Na przykład:

gource --bloom-multiplier 2.0 --bloom-intensity 1.5 --background 555555

Za pomocą strzałek, kółka myszki oraz guzików V i Tab możemy zmieniać położenie kamery i uzyskiwać zbliżenia.

CVS

Przed przystąpieniem do generowania animacji z repozytorium CVS, należy przygotować specjalny plik dla aplikacji. Możemy to uczynić za pomocą skryptu cvs-exp.pl.

cd my-cvs-project
cvs-exp.pl -notree > my-cvs-project.log
gource my-cvs-project.log

SVN

W przypadku SVNa możemy repozytorium sklonować do Gita za pomocą polecenia git svn fetch. Przy dużej ilość plików ta operacja może trwać bardzo długo. Dlatego dostępna jest alternatywna metoda za pomocą skryptu svn-gource.py. Wydajemy wtedy polecenia:

cd my-svn-project
svn log --verbose --xml > my-project.log
python svn-gource.py --filter-dirs my-project.log > my-project-gource.log
gource --log-format custom my-project-gource.log

Jeśli pojawi się nam animacja, to możemy zapisać ją w postaci pliku wideo za pomocą polecenia:

gource --log-format custom my-project-gource.log --stop-at-end --output-ppm-stream - | ffmpeg -y -b 3000K -r 60 -f image2pipe -vcodec ppm -i - -vcodec libx264 gource.mp4

Więcej animacji dostępnych jest na stronie projektu w dziale Videos. Szczegółowe informacje oraz dokumentacja znajduje się na stronie code.google.com.

Podobne artykuły