Cómo usar el comando git bisect para descubrir el primer commit con un error
Escrito por
el .
gnu-linux
planeta-codigo
programacion
Enlace permanente
Comentarios
El comando git bisect es muy útil cuando se desea encontrar en que commit se ha introducido un error en un rango de commits ya que permite automatizar la búsqueda sin tener que hacerlo manualmente el desarrollador que simplemente se limita a indicar a Git si el commit a analizar en cada prueba es correcto o incorrecto. Una vez descubierto en que commit se ha introducido el error es cuestión de revisar los cambios de ese commit, analizar sus cambios e identificadas las líneas de código erróneas aplicar la solución.
Una herramienta de control de versiones para el código fuente de las aplicaciones es esencial, para guardar todos los cambios realizados en el código y permitir compartir código entre los desarrolladores aparte de otras funcionalidades proporcionadas. Una de las herramientas de control de versiones más populares es Git, desarrollado por Linus Torvalds también autor original de núcleo Linux entre otros colaboradores.
Una situación habitual al realizar cambios en el código fuente de un programa es pasado un tiempo descubrir un error y no conocer en que cambio lo ha producido y en que commit. Si no se tiene una pista de cual es el cambio que ha introducido error una solución es probar cada commit y para ver si esa versión de la aplicación tiene el error o no. Una vez probados varios commit al final se descubre que commit es el que ha introducido el error. Conociendo el commit que introduce el error hay que revisar los cambios de ese commit para conocer y cambiar las líneas de código erróneas.
El comando git bisect
Una de las funcionalidades que proporciona la herramienta de control de versiones Git es el subcomando bisect. El comando git bisect automatiza encontrar que commit ha introducido un error dado un rango de commits en el que se sospecha está el commit con el error.
El comando git bisect aplica un algoritmo de búsqueda al rango de commits, en función de la indicación que se le proporcione de si el commit tiene o no el error al final del número de comprobaciones que sean necesarias proporciona el primer commit con el error en el rango analizado.
El comando git bisect no se utiliza tan habitualmente como git stash o git commit pero cuando cuando es necesario es muy útil conocer como se usa y usarlo.
El primer paso del comando git bisect es iniciar la bisección y proporcionar el rango de commits a analizar. Una vez proporcionado el rango de commits git cambia el commit del espacio de trabajo según su algoritmo de búsqueda. El siguiente paso suele consistir en arrancar la aplicación y comprobar si el commit tiene o no el error. Una vez conocido si el commit es correcto o tiene el error se le indica a Git con el comando git bisect good o git bisect bad respectivamente. Git a continuación selecciona otro commit teniendo que comprobar de nuevo si el nuevo commit seleccionado es correcto o incorrecto. Después de varias repeticiones de estos pasos se descubre el commit en el que se introdujo el error.
Una vez terminada la bisección o en cualquier momento se puede dar por terminada con el comando git bisect reset y volver a un espacio de trabajo fuera del bisect. El comando git bisect view permite ver el estado de la bisección y los commits analizados.
Estos con los comandos básicos y un ejemplo de uso.
|
|
|
|
|
|