An empirical study of the relationship between refactorings and merge conflicts in Javascript code - Oliveira, José Glauber; Mongiovi, Melina; Souto, Sabrina (Anais do Simpósio Brasileiro de Engenharia de Software (SBES), 2023)
Maintenance activities are crucial to prolong the lifecycle of a software. An important activity during software maintenance is refactoring, which is a transformation that improves the quality of a program without changing its behavior. During software development, Version Control Systems (VCS) are used to integrate changes made by developers. These integration procedures, known as merge processes, may result in conflicts if changes are made in the same place in the code. This work aims to analyze the possible relationship between refactorings and merge conflicts in JavaScript code. We analyzed 50 JavaScript repositories, including 56,966 merge scenarios, which 4,816 of them have conflicts. We discovered a moderate positive correlation between the number of conflicts and the number of refactoring transformations within the conflicting file. Additionally, this correlation captured a specific JavaScript refactoring type, "Internal Move", that was most strongly associated with conflicting merge scenarios.