|
Detecting Renamings in Three-Way MergingKeywords: Three-way Merge , Abstract Syntax Tree , Refactoring , Renaming Identifiers , Semantic Errors Abstract: Teamwork is the typical characteristic of software development, because the taskscan be splitted and parallelized. The independently working developers use SoftwareConfiguration Management (SCM) systems to apply version control to their files and tokeep them consistent. Several SCM systems allow working on the same files concurrently,and attempt to auto-merge the files in order to facilitate the reconciliation of the parallelmodifications. The merge should produce syntactically and semantically correct sourcecode files, therefore, developers are often involved into the resolution of the conflicts.However, when a general textual-based approach reports a successful merge, the outputcan still be failed in compile time, because semantic correctness cannot be ensuredtrivially. Renaming an identifier consists of many changes, and can cause semantic errorsin the output of the merge, which subsequently have to be corrected manually. This paperintroduces that matching the identifier declarations, e.g. class, field, method, localvariables, with their corresponding references in the abstract syntax trees of the revisions,and considering the detected renamings during the merge takes closer to semanticcorrectness. The problem is illustrated and a solution is elaborated in this work.
|