A Systematic Comparison of Two Refactoring-aware Merging Techniques

  • Author / Creator
    Ellis, Max
  • Dealing with merge conflicts in version control systems is a challenging task for software developers. Resolving merge conflicts is a time-consuming and error-prone process, which distracts developers from important tasks. Recent work shows that refactorings are often involved in merge conflicts and that refactoring-related conflicts tend to be larger, making them harder to resolve. In the literature, there are two refactoring-aware merging techniques that claim to automatically resolve refactoring-related conflicts, an operationbased refactoring-aware merging approach called MolhadoRef and a graphbased refactoring-aware merging approach called IntelliMerge. However, these two techniques have never been empirically compared. In this thesis, wepresent RefMerge, a Java re-implementation of operation-based refactoringaware merging, but built on Git. In addition to contributing this new design and implementation of refactoring-aware operation-based merging, thisthesis contains the experimental results of comparing RefMerge to Git and IntelliMerge on 2,001 merge scenarios with refactoring-related conflicts from 20 open-source projects. The results show that RefMerge completely resolves143 (7%) merge scenarios while IntelliMerge resolves only 78 (4%). This thesis also presents a qualitative analysis of the differences between the three merging algorithms and provides insights into the strengths and weaknesses ofeach refactoring-aware tool.

  • Subjects / Keywords
  • Graduation date
    Spring 2022
  • Type of Item
  • Degree
    Master of Science
  • DOI
  • License
    This thesis is made available by the University of Alberta Libraries with permission of the copyright owner solely for non-commercial purposes. This thesis, or any portion thereof, may not otherwise be copied or reproduced without the written consent of the copyright owner, except to the extent permitted by Canadian copyright law.