Des graphes pour vos dépôts Git
04 Feb
Il existe beaucoup d'outils pour visualiser l'historique d'un dépôt Git : git log, gitk, … Mais dans la plupart des cas il est difficile d'obtenir une image et de la sauvegarder (pour la partager par exemple).
Récemment, je suis tombé sur un article montrant comment générer un graphe de l'historique d'un dépôt, en 4 lignes de Bash et une de Perl. À la base, le script est utilisé pour générer des fractales. Après l'avoir utilisé quelques temps, j'ai trouvé qu'il lui manquant quelques fonctionnalités utiles, comme étiquetter les commits pointés par une branche, situer plus précisemment l'état courant, mais aussi rajouter un peu de couleur !
J'ai donc entrepris de réécrire ça, en un script un peu plus long et à base de Ruby (pas que je n'aime pas Perl, mais presque). Après un petit moment, voici quelques exemples de ce que j'arrive à produire maintenant :
Comme vous vous en doutez, l'étiquette rouge représente la branche courante, les vertes les autres branches. On voit très bien apparaître les commits de merge et les branchements, ce qui est très pratique !
Le code n'est pas très propre et demande un peu de nettoyage à mon avis, mais il a le mérite de fonctionner ! Vous pouvez le retrouver sur un gist. Tout ce que vous avez à faire c'est le rendre exécutable et le placer dans un des dossiers de votre PATH puis de rajouter l'alias suivant dans votre ~/.gitconfig :
[alias] dot = !sh -c 'chemin/vers/git-dot'
Ensuite, ça s'utilise presque avec les mêmes options que git log, surtout au niveau de la sélection des commits, et ça génère du dot en sortie. Quand ça sera un peu plus au point, j'en ferais peut-être un dépôt Git à part entière, en attendant, amusez-vous bien avec !