21/04/2021

2. Blame

Lu 1002 fois Licence Creative Commons


Quand on cherche qui est le responsable du bug...


Git blame

La commande blame permet d'obtenir la liste des lignes d'un fichier, annotées du commit et de l'auteur correspondant:

git blame README.md
[output]^ae388b9 (AymDev 2020-05-02 17:08:29 +0200 1) # Cours git
[output]^ae388b9 (AymDev 2020-05-02 17:08:29 +0200 2) 
[output]^ae388b9 (AymDev 2020-05-02 17:08:29 +0200 3) Projet d'initiation à **Git**
[output]^ae388b9 (AymDev 2020-05-02 17:08:29 +0200 4) Ceci est un dépôt d'entrainement.
[output]daaad193 (AymDev 2020-05-03 16:17:20 +0200 5) 
[output]daaad193 (AymDev 2020-05-03 16:17:20 +0200 6) Penser à exécuter `git log` pour voir l'historique du cours.

Exemple: vous trouvez un bug provoqué par la ligne 6 du fichier README.md, vous pouvez faire afficher 3 lignes jusqu'à la ligne 4 pour voir quels commits ont potentiellement introduit le bug.

git blame -L 6,-3 README.md
[output]^ae388b9 (AymDev 2020-05-02 17:08:29 +0200 4) Ceci est un dépôt d'entrainement.
[output]daaad193 (AymDev 2020-05-03 16:17:20 +0200 5) 
[output]daaad193 (AymDev 2020-05-03 16:17:20 +0200 6) Penser à exécuter `git log` pour voir l'historique du cours.

Cette commande n'a pas pour but de trouver le collègue fautif mais de comprendre quand, comment et pourquoi ce bug a été introduit dans le projet.
À l'inverse, elle peut aussi permettre d'expliquer pourquoi un bug n'apparaît plus. Ou encore, de savoir qui a travaillé sur un fichier si on cherche de l'aide sur un sujet particulier.

Note: Plus tard, avec des branches, identifier le commit coupable permettra de savoir quelles branches contiennent le bug.

Outil: Sur le navigateur, Git History est un outil similaire qui permet également de voir l'historique d'un fichier ainsi que l'auteur des changements.