Finde den Übeltäter!

Letzte Änderung am 8. Dezember 2018 by Christoph Jüngling

Aufgabenstellung

Eine Funktion hat schon mal wunderbar funktioniert. Irgendwann in der Zwischenzeit der Entwicklung ist der Aufruf aber verschwunden. Leider hat das damals keiner gemerkt. Wir haben aber herausgefunden, dass in einem bestimmten Changeset noch alles in Ordnung war, in einem späteren jedoch nicht mehr.

Annahme

Die Prüfung lässt sich mittels eines einfachen “grep” durchführen. Grep liefert einen Return Code 0, wenn etwas gefunden wurde, und einen Return Code 1, wenn nichts gefunden wurde. Suchen wir nach dem Ereignis “MouseMove” (wenn wir wissen, dass dieses nur an dieser einen Stelle verwendet wurde), dann kann Grep die meiste Arbeit für uns übernehmen.

Lösung

hg bisect --reset
hg bisect --good 92
hg bisect --bad 693
hg bisect --command "grep -A 5 MouseMove frmMdiMain.frm"

Und schon ist der Übeltäter gefunden :-)

Ergänzung: Das lässt sich natürlich nicht nur in Mercurial machen, auch Git kennt diese Funktion, und sicher auch noch eine Reihe weiterer Programme.

Ähnliche Artikel:

Schreibe einen Kommentar

Deine Email-Adresse wird nicht veröffentlicht.

eins × 2 =