Multiple studies found that developer questions about the history of code were among the hardest and most time-consuming to answer. In fact, the study of multi-revision, fine-grained code history with current approaches is a laborious, repetitive, and as such, error-prone process. In this dissertation, I posit the thesis that the multi-revision, fine-grained analysis of source-code history can be partially automated in a way that is efficient, that provides support to answer software development questions, and that accurately models source-code evolution. I present a series of techniques, tools and experiments that I developed and performed in order to evaluate this thesis. In the first step towards evaluating my thesis, I observe and conce...