Understanding Merge Conflicts Characteristics (Website under construction)

Abstract

Previous studies show that merge conflicts frequently occur in collaborative development environments, and often impairs developers' productivity, since merging contributions is a demanding and tedious task. However, the structure of the changes that lead to conflicts has not been studied yet. Understanding conflicts underlying structure and the involved syntactic language elements might shed light on how to better avoid and resolve conflicts. So, in this paper we derive a catalog of conflict patterns expressed in terms of code changes that lead to conflicts. To assess the occurrence of such patterns in open-source systems, we conducted an empirical study that reproduces 56819 merges from 128 GitHub projects. We focus on conflicts reported by a semistructured merge tool, avoiding a large number of spurious conflicts often reported by typical unstructured tools that are still used in practice. We found out that most merge conflicts happen because developers independently edit the same lines of the same methods. Furthermore, we noticed that copying and pasting pieces of code, or even entire files, across different repositories is a common practice. We also analyze how our results reveal the need for new research studies and potential improvements to tools that better support collaborative software development.

If you have any questions please contact:

Paola Accioly - prga at cin.ufpe.br

Paulo Borba - phmb at cin.ufpe.br

Guilherme Cavalcanti - gjcc at cin.ufpe.br

Paper

Link to our paper

This is a post-peer-review, pre-copyedit version of an article published in The Empirical Software Engineering Journal. The final authenticated version is available online at: https://doi.org/10.1007/s10664-017-9586-1


Results -- Graphs and Tables (HTML generated by our R scripts)

Conflict Pattern Results Here

Normalized Conflict Results Here

Data

All data we collected during our experiment is available in what follows.

Conflict Patterns collected

Normalized Patterns collected

Tools

The tools used to run our experiment, including the mining and the execution step are available here.

Sample Systems

Description of our sample

The Conflict Pattern Catalog

Bellow you can see one example of an instance of each pattern.

Different edits to the same area of the same method or constructor

Acronym: EditSameMC

Example:

Methods or constructors added with the same signature and different bodies

Acronym: SameSignatureCM

Example:

Different edits to the same field declaration

Acronym: EditSameFd

Example:

EditSameFd.png

Field declarations added with the same identifiers and different types of modifiers

Acronym: AddSameFd

Example:

SameIdFd.png

Different edits to the modifier list of the same type declaration (class, interface, annotation or enum types)

Acronym: ModifierList

Example:

ModifierList.png

Different edits to the same implements declaration

Acronym: ImplementsList

Example:

Different edits to the same extends declaration

Acronym: ExtendsList

Example:

ExtendsLits.png

Different edits to the same annotation method default value

Acronym: DefaultValueA

Example:

Sample systems

MyForm
29 Jan. EMN/ARMINES, ULANC, UMA, FCT/UNL
12 Feb. HOLOS, EMN/ARMINES
26 Feb.

Topic attachments
I Attachment Action Size Date Who Comment
PNGpng DefaultValueAnnotation.png manage 92.6 K 2014-12-11 - 21:22 UnknownUser  
PNGpng EditSameFd.png manage 51.9 K 2015-08-30 - 16:27 UnknownUser  
PNGpng ExtendsLits.png manage 63.4 K 2015-08-30 - 16:27 UnknownUser  
PNGpng ImplementList.png manage 59.9 K 2014-12-11 - 21:04 UnknownUser  
PNGpng LineBasedMCFd.png manage 69.4 K 2014-12-11 - 19:57 UnknownUser  
PNGpng ModifierList.png manage 35.4 K 2014-12-11 - 20:57 UnknownUser  
PDFpdf PID3558029.pdf manage 89.7 K 2015-04-07 - 11:39 UnknownUser  
PNGpng SameIdFd.png manage 51.3 K 2014-12-11 - 20:52 UnknownUser  
PNGpng SameSignatureCM.png manage 97.6 K 2014-12-11 - 20:43 UnknownUser  
HTMLhtml conflictResults.html manage 81.7 K 2016-10-19 - 17:18 UnknownUser  
PDFpdf ese.pdf manage 832.3 K 2017-12-26 - 14:59 UnknownUser  
PDFpdf prga_icse_src.pdf manage 85.6 K 2015-05-07 - 00:38 UnknownUser  
Topic revision: r20 - 2018-09-16 - PaolaAccioly
 
This site is powered by the TWiki collaboration platformCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback

mersin escort bayan adana escort bayan izmit escort ankara escort bursa escort