An empirical study of the relationship between refactorings and merge conflicts in Javascript code

  • José Glauber Oliveira UFCG
  • Melina Mongiovi UFCG
  • Sabrina Souto UEPB

Resumo


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.
Palavras-chave: refactoring, merge conflicts, javascript, github
Publicado
25/09/2023
Como Citar

Selecione um Formato
OLIVEIRA, José Glauber; MONGIOVI, Melina; SOUTO, Sabrina. An empirical study of the relationship between refactorings and merge conflicts in Javascript code. In: SIMPÓSIO BRASILEIRO DE ENGENHARIA DE SOFTWARE (SBES), 37. , 2023, Campo Grande/MS. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2023 . p. 89–98.