I. Introduction
As software evolves, developers usually spend time fixing bugs, refactoring, adding new features to existing code. In these maintenance activities, they often make recurring changes, similar but different changes across multiple locations [1]–[3]. Recent work finds that on average 75% of structural changes to mature software are recurring changes [1], [2] and 17% to 45% of bug repairs are recurring fixes by similar edits [3]. To understand such code changes during peer code reviews, developers inspect diff patches, program differences between two versions. For example, a developer inspects diff patches changed by other team members. Questions the developer asks are often of the following types [4], [5]: “what other code changes are made similar to this change?” and “is there any location required to be changed similarly but is not modified?”