Loading [a11y]/accessibility-menu.js
On the Nature of Merge Conflicts: A Study of 2,731 Open Source Java Projects Hosted by GitHub | IEEE Journals & Magazine | IEEE Xplore

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

Publisher: IEEE

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 te...View more

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 percent 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. What do they look like, in detail? How do developers resolve them? Do any patterns exist that might suggest new merge techniques that could reduce the manual effort? This paper contributes an in-depth study of the merge conflicts found in the histories of 2,731 open source Java projects. Seeded by the manual analysis of the histories of five projects, our automated analysis of all 2,731 projects: (1) characterizes the merge conflicts in terms of number of chunks, size, and programming language constructs involved, (2) classifies the manual resolution strategies that developers use to address these merge conflicts, and (3) analyzes the relationships between various characteristics of the merge conflicts and the chosen resolution strategies. Our results give rise to three primary recommendations for future merge techniques, that - when implemented - could on one hand help in automatically resolving certain types of conflicts and on the other hand provide the developer with tool-based assistance to more easily resolve other types of conflicts that cannot be automatically resolved.
Published in: IEEE Transactions on Software Engineering ( Volume: 46, Issue: 8, 01 August 2020)
Page(s): 892 - 915
Date of Publication: 19 September 2018

ISSN Information:

Publisher: IEEE

Funding Agency:


References

References is not available for this document.