Reminds me of one of the nice features of Git: git bisect. Find the breaking commit in the smallest number of steps.
Some random blog post about it: http://webchick.net/node/99
Some random blog post about it: http://webchick.net/node/99
I worked on a Drupal project... Once.
Leaped and haven't looked back yet. Great stuff.
My approach has been to step exponentially. I go back 1 commit, 2 commits, 4 commits... etc. I'll be using bisect from now on though.
git bisect is "temporal bisection", i.e. you delete half of a time interval. The manual bisect is kinda-sorta "spatial" in the sense that you delete half a region of code. the two things work by similar principles, and their problem domains overlap -- but they are not the same.
I've done the manual equivalent in perforce as well.