En el proyecto de desarrollo web en el que participo con mis alumnos me ha tocado, entre otras cosas, crear y validar la ejecución de las distintas tareas de programación que se realizan.
Como mis alumnos (cariñosamente mis «becarios») comienzan con muy poca soltura (cuando llegan a ser productivos se me van de la «empresa») es habitual que alguno se cargue el proyecto completo (por modificar lo que no debe) y toque colocarlo en el «Hall of Blame» donde recogemos cuándo y quién subió algo sin probar y perjudicó al resto del grupo 😇
Localizar el autor del estropicio y el commit en el que lo realizó no suele ser complicado salvo cuando varios de ellos (más habitual de lo deseable actualmente) modifican el mismo fichero.
Por fortuna, git cuenta con un comando que nos facilita localizar el autor de cada uno de los cambios realizados en determinada línea de código de nuestro proyecto… aquí dejo cómo hacerlo para «mi yo del futuro» y si, de paso, le resulta de utilidad a alguno de vosotros 😉
Si queremos averiguar quién ha modificado la línea 72 de nuestro fichero controller/Pregunta.php deberemos utilizar el comando blame de GIT del siguiente modo:
git blame -L72,72 controller/Pregunta.php
obteniendo un resultado similar a
NOTA: en el ejemplo he usado el mismo valor (72) tanto para la línea de inicio como de fin; si nos interesa listar el autor (o autores si han sido varios los que han cambiado dicho bloque de código) puedes utilizar números de inicio y fin distintos. Así con
git blame -L72,77 controller/Pregunta.php
obtendremos los commits y autores de los distintos cambios realizados en el bloque de código indicado
Conclusión
Forma rápida y sencilla de encontrar a quién debemos agradecer determinada funcionalidad (todo no va a ser señalar con el dedo ¿verdad?) y/o pedir que corrija alguna incorrección que se hubiese podido producir.
Y tú…
- ¿Conocías el comando blame de GIT?
- ¿Cómo sueles localizar el responsable de determinada funcionalidad?
- ¿Cuál es el equipo de trabajo más grande en el que has participado?
- ¿Qué software de control de versiones sueles utilizar?
- …
cada push al repo se pasa por jenkins que canta como canario si alguien mete la pata
😀
Me gustaMe gusta
Uuummmm.. mi querido «mayordomo», no me tientes no me tientes, que demasiado tienen mis pobres estudiantes (bachillerato) con GIT y Github 😏
Me gustaMe gusta