A Characterization And Partial Automation Of The Multi-Revision, Fine-Grained Analysis Of Code History As An Efficient And Accurate Mechanism To Support Software Development