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'
    
  3. done, got the fishy commit! (524)

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