Git Bisect: Trovare il Commit che ha Introdotto un Bug
La test suite è verde da tre settimane. Oggi npm test fallisce su un’asserzione che non ha niente a che fare con quello che hai appena modificato, e git log v1.4.0..HEAD mostra 340 commit di quattro persone dall’ultima release, di cui qualcuno era sicuro che funzionasse. Leggere ogni diff ti costa una giornata. Fare checkout di commit a caso è più veloce, ma resta comunque non un piano. git bisect trasforma tutto questo in una ricerca binaria. Gli dai un commit che sai essere buono e uno che sai essere rotto; lui fa il checkout del commit a metà tra i due e aspetta che tu lo testi e riporti il risultato. Ogni risposta dimezza l’intervallo. 340 commit si risolvono in al massimo 9 test, perché 2^9 = 512. ...