Início > git, tutorial > git bisect

git bisect

09/07/2009


Preparando um material para falar sobre git, algumas técnicas e outras dicas, dentre elas resolvi demostrar o uso do git bisect, e usei como base o post do Arthur Geek. Então, resolvi fazer uma aplicação nada trivial (um blog) e em um certo ponto dos commits, forcei um erro para usar o git bisect e encontra-lo. Aproveitei para dar uma lida na documentação para pegar mais algum detalhe e me deparei com a opção “run” que automatiza a busca pelo commit ruim, usando um script ou comando que avalia o ponto de parada. Como na minha aplicação exemplo estava coberta por testes e o erro forçado era capturado, logo ficou muito mais legal. Abaixo segue resumido os passos seguidos, mas todo o console você dá uma olhada no meu gist.

1) Listando o log de commits para identificar um ponto bom e outro ruim.
$ git log
2) Após identificados os commits, iniciando o git bisect
$ git bisect start HEAD a17411e98d7b5
3) Deixando o git bisect buscar o ponto de inicio da falha, com rake test:units
$ git bisect run rake test:units
4) Identificado o ponto de erro, então vamos para o git bisect
$ git bisect reset
5) Vamos listar o diff entre os commits com erro e anterior
$ git diff 7d91b350196ccc 0765b113edefb9

* as chaves de commit acima foram abreviadas para facilitar, mas está completo no log

Categoriasgit, tutorial Tags:,
  1. 10/07/2009 às 12:27 | #1

    Pô, sensacional saber que o bisect tem essa opção run. Não fazia idéia.

    Para quem realmente leva testes a sério, isso é uma tremenda mão na roda.

    • 10/07/2009 às 13:58 | #2

      @luizrocha pois é, descobri ontem aqui em casa e achei MARA

  2. 11/07/2009 às 15:15 | #3

    Æ!!

    Realmente para quem tem todo o sistema coberto por testes o git bisect é uma mão na roda. Eu conheci esse comando quando eu estava lendo o Pragmatic Version Control with Git. =D

    Valeu pelo post tino! É legal ver o comando na prática.

    Há braços

Fechado para comentários.