Skip to Main Content
Previous work on tracking source locations has focused on tracking lines through multiple revisions of software. In this paper, we explore a new technique for tracking statements, rather than lines, across multiple revisions of Java source code. We show that our statement-tracking technique achieves comparable accuracy for source code than the most accurate line-tracking techniques, while also safely handling all non-executable formatting changes, such as breaking a single statement across many lines, adding or removing whitespace, moving brackets, or re-ordering methods. Finally, we compare the performance of three of the current state-of-the-art techniques for tracking lines across revisions on a series of benchmarks, and discuss the strengths and weaknesses of each technique.