Software developers regularly need to find diverse information to successfully perform their tasks. Some example of software information needs are: “why was this code implemented in this way?”, or “who has expertise in this functionality?” Unfortunately, finding such information requires high effort, and it is often found inaccurately, which not only decreases software development productivity, but it also decreases software quality. In my research, I follow the insight that many of the questions that developers ask can be answered automatically by analyzing the data that they produced in past software development tasks. I will present a series of techniques that automate the multi-revision, fine-grained analysis of source code history. These techniques provide high accuracy by optimizing code similarity over its modeled history. I will also demonstrate how these techniques help software developers to find relevant information about software development tasks efficiently and accurately.