Understanding the Impact of Branch Edit Features for the Automatic Prediction of Merge Conflict Resolutions

TR Number

Date

2024-04-15

Journal Title

Journal ISSN

Volume Title

Publisher

ACM

Abstract

Developers regularly have to resolve merge conflicts, i.e., two conflicting sets of changes to the same files in different branches, which can be tedious and error-prone. To resolve conflicts, developers typically: keep the local version (KL) or the remote version (KR) of the code. They also sometimes manually edit both versions into a single one (ME). However, most existing techniques only support merging the local and remote versions (the ME strategy). We recently proposed RPRedictoR, a machine learning-based approach to support developers in choosing how to resolve a conflict (by KL, KR, or ME), by predicting their resolution strategy. In its original design, RPRedictoR uses a set of Evolution History Features (𝐸𝐻𝐹 s) that capture: the magnitude of the changes in conflict, their evolution, and the experience of the developers involved. In this paper, we proposed and evaluated a new set of Branch Edit Features (𝐵𝐸𝐹 s), that capture the fine-grained edits that were performed on each branch of the conflict. We learned multiple lessons. First, 𝐵𝐸𝐹 s provided lower effectiveness (F-score) than the original 𝐸𝐻𝐹 s. Second, combining 𝐵𝐸𝐹 s with 𝐸𝐻𝐹 s still did not improve the effectiveness of 𝐸𝐻𝐹 s, it provided the same f-score. Third, the feature set that provided highest effectiveness in our experiments was the combination of 𝐸𝐻𝐹𝑠 with a subset of 𝐵𝐸𝐹 s that captures the number of insertions performed in the local branch, but this combination only improved 𝐸𝐻𝐹 s by 3 pp. f-score. Finally, our experiments also share the lesson that some feature sets provided higher C-score (i.e., the safety of the technique’s mistakes) as a trade-off for lower f-scores. This may be valued by developers and we believe that it should be studied in the future.

Description

Keywords

Citation