Do code refactorings influence the merge effort?

05/10/2023
by   André Oliveira, et al.
0

In collaborative software development, multiple contributors frequently change the source code in parallel to implement new features, fix bugs, refactor existing code, and make other changes. These simultaneous changes need to be merged into the same version of the source code. However, the merge operation can fail, and developer intervention is required to resolve the conflicts. Studies in the literature show that 10 to 20 percent of all merge attempts result in conflicts, which require the manual developer's intervention to complete the process. In this paper, we concern about a specific type of change that affects the structure of the source code and has the potential to increase the merge effort: code refactorings. We analyze the relationship between the occurrence of refactorings and the merge effort. To do so, we applied a data mining technique called association rule extraction to find patterns of behavior that allow us to analyze the influence of refactorings on the merge effort. Our experiments extracted association rules from 40,248 merge commits that occurred in 28 popular open-source projects. The results indicate that: (i) the occurrence of refactorings increases the chances of having merge effort; (ii) the more refactorings, the greater the chances of effort; (iii) the more refactorings, the greater the effort; and (iv) parallel refactorings increase even more the chances of having effort, as well as the intensity of it. The results obtained may suggest behavioral changes in the way refactorings are implemented by developer teams. In addition, they can indicate possible ways to improve tools that support code merging and those that recommend refactorings, considering the number of refactorings and merge effort attributes.

READ FULL TEXT

page 1

page 7

page 8

research
11/22/2018

Uma técnica para a quantificação do esforço de merge

Developers that use version control systems can work in parallel with ot...
research
02/10/2022

Spork: Structured Merge for Java with Formatting Preservation

The highly parallel workflows of modern software development have made m...
research
03/06/2019

The standard coder: a machine learning approach to measuring the effort required to produce source code change

We apply machine learning to version control data to measure the quantit...
research
03/07/2023

Are We Speeding Up or Slowing Down? On Temporal Aspects of Code Velocity

This paper investigates how the duration of various code review periods ...
research
05/09/2022

Towards Development with Multi-Version Models: Detecting Merge Conflicts and Checking Well-Formedness

Developing complex software requires that multiple views and versions of...
research
07/20/2021

On the Interplay of Smells Large Class, Complex Class and Duplicate Code

Bad smells have been defined to describe potential problems in code, pos...
research
05/09/2023

How is the speed of code review affected by activity, usage and code quality?

This paper investigates how the speed of code review is affected by the ...

Please sign up or login with your details

Forgot password? Click here to reset