Understanding semi-structured merge conflict characteristics in open-source Java']Java projects

被引:22
|
作者
Accioly, Paola [1 ]
Borba, Paulo [1 ]
Cavalcanti, Guilherme [1 ]
机构
[1] Univ Fed Pernambuco, Informat Ctr, Recife, PE, Brazil
关键词
Collaborative software development; Merge conflicts; Empirical software engineering; Awareness tools;
D O I
10.1007/s10664-017-9586-1
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Empirical studies show that merge conflicts frequently occur, impairing developers' productivity, since merging conflicting contributions might be a demanding and tedious task. However, the structure of changes that lead to conflicts has not been studied yet. Understanding the underlying structure of conflicts, and the involved syntactic language elements might shed light on how to better avoid merge conflicts. To this end, in this paper we derive a catalog of conflict patterns expressed in terms of the structure of code changes that lead to merge conflicts. We focus on conflicts reported by a semi-structured merge tool that exploits knowledge about the underlying syntax of the artifacts. This way, we avoid analyzing a large number of spurious conflicts often reported by typical line based merge tools. To assess the occurrence of such patterns in different systems, we conduct an empirical study reproducing 70,047 merges from 123 GitHub Java projects. Our results show that most semi-structured merge conflicts in our sample happen because developers independently edit the same or consecutive lines of the same method. However, the probability of creating a merge conflict is approximately the same when editing methods, class fields, and modifier lists. Furthermore, we noticed that most part of conflicting merge scenarios, and merge conflicts, involve more than two developers. Also, that copying and pasting pieces of code, or even entire files, across different repositories is a common practice and cause of conflicts. Finally, we discuss how our results reveal the need for new research studies and suggest potential improvements to tools supporting collaborative software development.
引用
收藏
页码:2051 / 2085
页数:35
相关论文
共 50 条
  • [1] Understanding semi-structured merge conflict characteristics in open-source Java projects
    Paola Accioly
    Paulo Borba
    Guilherme Cavalcanti
    [J]. Empirical Software Engineering, 2018, 23 : 2051 - 2085
  • [2] Understanding Semi-structured Merge Conflict Characteristics in Open-Source Java']Java Projects (Journal-First Abstract)
    Accioly, Paola
    Borba, Paulo
    Cavalcanti, Guilherme
    [J]. PROCEEDINGS OF THE 2018 33RD IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMTED SOFTWARE ENGINEERING (ASE' 18), 2018, : 955 - 955
  • [3] Analyzing Conflict Predictors in Open-Source Java']Java Projects
    Accioly, Paola
    Borba, Paulo
    Silva, Leuson
    Cavalcanti, Guilherme
    [J]. 2018 IEEE/ACM 15TH INTERNATIONAL CONFERENCE ON MINING SOFTWARE REPOSITORIES (MSR), 2018, : 576 - 586
  • [4] On the Nature of Code Cloning in Open-Source Java']Java Projects
    Golubev, Yaroslav
    Bryksin, Timofey
    [J]. 2021 IEEE 15TH INTERNATIONAL WORKSHOP ON SOFTWARE CLONES, IWSC 2021, 2021, : 22 - 28
  • [5] On Understanding the Release Patterns of Open Source Java']Java Projects
    Kaur, Arvinder
    Vig, Vidhi
    [J]. COMPUTATIONAL INTELLIGENCE IN DATA MINING, 2019, 711 : 9 - 18
  • [6] How README files are structured in open source Java']Java projects
    Liu, Yuyang
    Noei, Ehsan
    Lyons, Kelly
    [J]. INFORMATION AND SOFTWARE TECHNOLOGY, 2022, 148
  • [7] FOUNTAIN: A JAVA']JAVA open-source package to assist large sequencing projects
    Buerstedde, Jean-Marie
    Prill, Florian
    [J]. BMC BIOINFORMATICS, 2001, 2 (1)
  • [8] Security Analysis of Web Open-Source Projects Based on Java']Java and PHP
    Yin, Zhen
    Lee, Scott Uk-Jin
    [J]. ELECTRONICS, 2023, 12 (12)
  • [9] Automatic Categorization with Deep Neural Network for Open-Source Java']Java Projects
    Anh Tuan Nguyen
    Nguyen, Tien N.
    [J]. PROCEEDINGS OF THE 2017 IEEE/ACM 39TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING COMPANION (ICSE-C 2017), 2017, : 164 - 166
  • [10] On the nature of code cloning in open-source Java projects
    Golubev, Yaroslav
    Bryksin, Timofey
    [J]. arXiv, 2021,