2020
DOI: 10.1109/tse.2018.2871083
|View full text |Cite
|
Sign up to set email alerts
|

On the Nature of Merge Conflicts: A Study of 2,731 Open Source Java Projects Hosted by GitHub

Abstract: When multiple developers change a software system in parallel, these concurrent changes need to be merged to all appear in the software being developed. Numerous merge techniques have been proposed to support this task, but none of them can fully automate the merge process. Indeed, it has been reported that as much as 10% to 20% of all merge attempts result in a merge conflict, meaning that a developer has to manually complete the merge. To date, we have little insight into the nature of these merge conflicts.… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

7
48
1

Year Published

2021
2021
2024
2024

Publication Types

Select...
4
2
1

Relationship

0
7

Authors

Journals

citations
Cited by 47 publications
(56 citation statements)
references
References 40 publications
7
48
1
Order By: Relevance
“…Textual merge conflicts occur when changes from independent commits over a common base cannot be resolved by a textual 3-way differencing tool present in version control systems such as git. Merge conflicts are frequent and annoying, and studies have shown they can have a significant impact on the development lifecycle of projects [1]. Prior works have focused on predicting merge conflicts [2]- [7], resolving them through using structured abstract syntax tree (AST) aware techniques [8]- [12], or even verifying semantic correctness of merges using program verifiers [13].…”
Section: Introductionmentioning
confidence: 99%
See 1 more Smart Citation
“…Textual merge conflicts occur when changes from independent commits over a common base cannot be resolved by a textual 3-way differencing tool present in version control systems such as git. Merge conflicts are frequent and annoying, and studies have shown they can have a significant impact on the development lifecycle of projects [1]. Prior works have focused on predicting merge conflicts [2]- [7], resolving them through using structured abstract syntax tree (AST) aware techniques [8]- [12], or even verifying semantic correctness of merges using program verifiers [13].…”
Section: Introductionmentioning
confidence: 99%
“…Instead of devising an algorithm to resolve any merge conflict, we pose the merge conflict resolution problem as that of learning repetitive resolution patterns from the history of a given project. In fact, Ghitto et al [1] observed patterns are commonplace in conflict resolution for a large project when viewed over the history of a project. They also postulate that learning common resolution patterns in a project can be a useful aid for developers in resolving future conflicts.…”
Section: Introductionmentioning
confidence: 99%
“…While semi-structured merge is faster than structured merge and more precise than unstructured merge, it is still not used in software industry due to the effort that is needed in order to support new programming languages. A recent large-scale empirical study by Ghiotto et al [28] also investigated various characteristics of textual merge conflicts, such as their size and resolution types. The results suggests that since merge conflicts vary greatly in terms of their complexity and resolutions, having an automatic tool that can resolve all types of conflicts is likely not feasible.…”
Section: B Empirical Studies On Software Mergingmentioning
confidence: 99%
“…override, merge and union described in [20]). The matching and merging strategies were chosen because they have been applied to a wide range of merging scenarios [5] -evolution of design models, ontology merging, and conceptual model merge. Furthermore, they have been recognised as handy, helpful heuristics in evolving architectural models (e.g.…”
Section: Merge Strategymentioning
confidence: 99%
“…At some point, it is necessary to combine these models to produce a 'big picture' view of the overall architecture. For this reason, a significant body of research has been done in the field of collaborative software modelling [4], merge conflicts [5], model synchronisation [6], integration of heterogeneous models [7], and integration of feature models [8].…”
Section: Introductionmentioning
confidence: 99%