Delta Debugging / git bisect

Thu, 23. Jul 2009

Categories: en development Tags: bisect Delta Debugging Eclipse git piccolo2d

Just had the problem โ€“ which of the last 40+ commits broke a certain feature in Piccolo2D rev550. As I used git as a svn proxy before, I remembered having heard of it’s binary-search delta-debugging feature.

So I started my first git bisect session:

  1. go back fairly far (git checkout 9377e6a0c6e9bcdff1803f18918e8a1a9282a4ee, Eclipse Refresh, try, fine!),
  2. start bisecting (doing each step: Eclipse->Refresh, Eclipse->Project->Clean, Try it out):
(master) $ git bisect start
(master|BISECTING) $ git bisect bad
(master|BISECTING) $ git bisect good 9377e6a0c6e9bcdff1803f18918e8a1a9282a4ee
Bisecting: 47 revisions left to test after this (roughly 6 steps)
[484ba591db63f6f476511787a5156cdaeb51889c] Fixed Issue 100; Plastered PInputEvent...
(484ba59...|BISECTING) $ git bisect good
Bisecting: 23 revisions left to test after this (roughly 5 steps)
[fa515a6d0eb5ce23d3e47df5e5b4e81e94fdfa81] Added tests for PBasicInputEventHandler
(fa515a6...|BISECTING) $ git bisect good
Bisecting: 11 revisions left to test after this (roughly 4 steps)
[6e496e12219346e856c8c519c29fedab3f196e35] Cleaned up PNavigationEventhandler.  R...
(6e496e1...|BISECTING) $ git bisect bad
Bisecting: 5 revisions left to test after this (roughly 3 steps)
[c591c3098e6268cfc90fcb84672d642b0878a4b7] Removed some unnecessary imports from...
(c591c30...|BISECTING) $ git bisect bad
Bisecting: 2 revisions left to test after this (roughly 2 steps)
[f3ca00181f2512b10bf12204395ad99f3d474f00] #84 added developers.
(f3ca001...|BISECTING) $ git bisect good
Bisecting: 1 revisions left to test after this (roughly 1 steps)
[99e495ec4fc54b0f3a36ffd3b605f8a27bd86cdf] Refactored mousePressed and mouseRelease...
(99e495e...|BISECTING) $ git bisect bad
Bisecting: 0 revisions left to test after this (roughly 0 steps)
[3f0c21d7cb88e696c23d4058acb708898bb60363] Just updated my contact info in the Maven...
(3f0c21d...|BISECTING) $ git bisect good
99e495ec4fc54b0f3a36ffd3b605f8a27bd86cdf is first bad commit
commit 99e495ec4fc54b0f3a36ffd3b605f8a27bd86cdf
Author:
Date:   Mon Jul 20 15:02:56 2009 +0000

    Refactored mousePressed and mouseReleased so that code common to each is now in a hel...

    git-svn-id: https://piccolo2d.googlecode.com/svn/piccolo2d.java/trunk@524 aadc08cf-13...

:040000 040000 b6c487cfdbe4df04947923af5fd05c45aa2ad38d 4dcd8070206a34a2d4037c3d90409ff1e...
(3f0c21d...|BISECTING) $ git bisect reset
Previous HEAD position was 3f0c21d... Just updated my contact info in the Maven Config File.
Switched to branch 'master'
  1. done, got the fishy commit! (524)

P.S.: I cut the long lines, git spits them out in full, naturally.