Blog Zenika

#CodeTheWorld

DevOps

Animer l'évolution de son code source avec Gource

La plupart des projets sont maintenant gérés avec des systèmes de contrôle de version (VCS) tels que SVN ou Git.
Pour voir la construction de ces projets, le seul outil offert par ces VCS est l’historique via la commande log.
C’est bien pratique mais pas très fun et compréhensible pour des non techniques…

C’est là que Gource entre en scène !

Présentation

Gource est un outil permettant de gérer une vidéo de l’évolution du code source d’un projet géré par un VCS.
Il gère nativement :

Mais il peut fonctionner avec tout autre type de VCS à condition de faire un petit effort de normalisation des informations de l’historique (l’utilisation avec CVS est par exemple documentée)
Gource va en fait extraire l’historique du projet depuis le VCS et faire une animation de l’évolution du code sous la forme d’un arbre représentant l’arborescence de fichier qui va évoluer dans le temps via des modifications par les contributeurs au projet.

Exemples

Puisqu’une vidéo est plus claire qu’un long discours, voilà des exemples de l’évolution du code source des 3 principaux DVCS actuels (Git, Bazaar et Mercurial) :

Git
“Git in 1min with Gource” sur Youtube
Bazaar
“Bazaar in 1min with Gource” sur Youtube
On remarque ici l’utilisation de Patch Queue Manager qui réduit les contributeurs à un seul.
Mercurial
“Mercurial in 1min with Gource” sur Youtube

Installation

Pour utiliser Gource, il suffit de l’installer.
Sous Ubuntu, il existe par exemple un package gource que vous pouvez installer via sudo apt-get install gource.
Pour Windows, il suffit de décompresser l’archive et d’utiliser l’exécutable gource.exe.

Utilisation

En vitesse

Pour l’utiliser, rien de plus simple : il suffit de le lancer depuis la racine de votre projet :

$ cd myProject
$ gource

Une fenêtre va s’ouvrir et l’évolution de votre code source va se rejouer devant vos yeux.

En détail

Gource est ensuite très paramétrable. Parmi les paramètres utiles :

-a, --auto-skip-seconds SECONDS : permet de sauter les période d’inactivité de plus de SECONDS secondes

-s, --seconds-per-day SECONDS : permet de régler la vitesse de l’animation

--user-image-dir DIRECTORY : permet de définir des avatars pour chaque utilisateur : Gource utilisera comme avatar l’image DIRECTORY/zigarn.jpg pour l’utilisateur zigarn par exemple

--default-user-image IMAGE : permet de définir un avatar par défaut si l’option précédente n’est pas utilisée ou qu’il n’y a pas d’image du nom de l’utilisateur (Attention : il faut préciser le chemin complet, pas juste relatif à DIRECTORY de l’option précédente)

Il existe un grand nombre de paramètres permettant de modifier l’apparence de l’animation en jouant sur l’effet de halo, l’affichage de certaines informations, le mouvement de la caméra, …
Tous ces paramètres sont bien documentés via gource --help ou la page de manuel.

Export vidéo

Gource permet d’exporter l’animation sous la forme d’une séquence d’images au format PPM via l’option -o, --output-ppm-stream.
Ces images peuvent ensuite être combinées en une vidéo avec un encodeur vidéo tel que ffmpeg.
Un exemple d’utilisation sous Linux pour un export en FLV (parfait pour un upload sur Youtube) pourra être le suivant :

gource --stop-at-end -s 0.05 --hide filenames,dirnames --date-format "%d/%m/%Y" -1280x720 --disable-progress --output-ppm-stream - | ffmpeg -y -b 3000K -r 30 -f image2pipe -vcodec ppm -i - -vcodec flv video-gource.flv

La documentation officielle donne aussi un exemple pour Windows et tout un tas de vidéos pour différents projets.

Conclusion

Voilà, vous avez maintenant un outil vous permettant de visualiser l’évolution de votre projet et de communiquer facilement dessus.
Et puis, il faut l’avouer, c’est joli !
Enfin, pour approfondir, dans le même principe mais un peu moins compréhensible visuellement, il y a code_swarm.

Auteur/Autrice

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.