git bisect – Finde den Fehler

Es kann immer mal vorkommen das man einen Fehler in seiner Software hat. Egal ob man ein großes Team ist oder ein einzelner Entwickler. Man weis das es irgendwann mal ging aber aktuell kommt beim Kunden die Fehlermeldung.
Wenn man den Fehler lokal auf dem Entwickler-Rechner nachstellen kann (was ja erstmal das aller Wichtigste ist), bietet git eine sehr komfortable Möglichkeit den Commit herauszufinden, wo dieser Fehler “eingebaut” wurde. Natürlich nicht absichtlich. Aber ein Feature mal eben reingemerged und irgendwelche impliziten Abhängigkeiten überschrieben … ZACK … Fehler..

Das Zauberwort lautet “git bisect”.

Mit dem Befehlt git bisect start startet man den bisect Modus. Danach gibt man einmal den Commit an, bei dem der Fehler noch nicht auftrat. Dazu einfach git bisect good <Commit>. Mit git bisect bad <Commit> sagt man bei welchem Commit der Fehler auftritt. Dabei ist es egal ob man genau den ersten findet. Wichtig ist das man git zwei Commits nennt, wo es Fehlerhaft und Fehlerfrei ist.

Danach startet git gleich seine Logik. Dabei wird ein Commit in der hälfte zwischen den beiden Commits (Fehlerhaft, Fehlerfrei) ausgecheckt. Es wird also der aktuelle Dateistand auf diesem Commit gesetzt.

Nun kann man das Testen starten. Wenn man den Fehler nachstellen kann, tippt man git bad ein. Wenn der Fehler bei diesem Commit noch nicht auftritt git good. Mit diesen Informationen kann git jeweils herausfinden ob der Fehler in der linken oder rechten Hälfte auftritt. Danach geht git wieder hin und teilt das in zwei Hälften. Solange bis der eine Commit gefunden wurde.

Nun wird der “Fehlerhafte” Commit angezeigt und man kann in die Analyse “warum” gehen.

Um danach den bisect Modus zu beenden einfach git bisect reset eintippen und man ist wieder am Anfang.

Viel Spaß damit!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

*

code