Revision Control Systems make generation of your "state C" easy.
In CVS, you need either the date or tag of C and do "cvs update -D $date" or "cvs update -r $tag"
In SVN, you are more likely to have a revision number, so you can use that with "svn update".
(From Alex: The situation I have in mind is when CVS and SVN are not helpful -- like, when someone dumped a boatload of changes into a checkin without keeping the history.)
Posted by Chris Dolan at December 8, 2005 2:15 PMLook up "delta debugging" "Andreas Zeller".
Posted by Robert O'Callahan at December 8, 2005 4:40 PMGit has "bisect", which takes a Good and a Bad checkout, and splits the difference in terms of lines changed. Repeat as necessary until your good last checkout is next to your bad next checkout. Very cool.
Posted by Randal L. Schwartz at December 11, 2005 2:14 PM