Understanding Merge Conflicts Characteristics (Website under construction)


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


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


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

Conflict Patterns collected

Normalized Patterns collected


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


Methods or constructors added with the same signature and different bodies

Acronym: SameSignatureCM


Different edits to the same field declaration

Acronym: EditSameFd



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

Acronym: AddSameFd



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

Acronym: ModifierList



Different edits to the same implements declaration

Acronym: ImplementsList


Different edits to the same extends declaration

Acronym: ExtendsList



Different edits to the same annotation method default value

Acronym: DefaultValueA


Sample systems

26 Feb.

Topic attachments
I Attachment Action Size Date Who Comment
PNGpng DefaultValueAnnotation.png manage 92.6 K 2014-12-11 - 21:22 PaolaAccioly  
PNGpng EditSameFd.png manage 51.9 K 2015-08-30 - 16:27 PaolaAccioly  
PNGpng ExtendsLits.png manage 63.4 K 2015-08-30 - 16:27 PaolaAccioly  
PNGpng ImplementList.png manage 59.9 K 2014-12-11 - 21:04 PaolaAccioly  
PNGpng LineBasedMCFd.png manage 69.4 K 2014-12-11 - 19:57 PaolaAccioly  
PNGpng ModifierList.png manage 35.4 K 2014-12-11 - 20:57 PaolaAccioly  
PDFpdf PID3558029.pdf manage 89.7 K 2015-04-07 - 11:39 PaolaAccioly  
PNGpng SameIdFd.png manage 51.3 K 2014-12-11 - 20:52 PaolaAccioly  
PNGpng SameSignatureCM.png manage 97.6 K 2014-12-11 - 20:43 PaolaAccioly  
HTMLhtml conflictResults.html manage 81.7 K 2016-10-19 - 17:18 PaolaAccioly  
PDFpdf ese.pdf manage 832.3 K 2017-12-26 - 14:59 PaolaAccioly  
PDFpdf prga_icse_src.pdf manage 85.6 K 2015-05-07 - 00:38 PaolaAccioly  
Topic revision: r20 - 2018-09-16 - PaolaAccioly
This site is powered by the TWiki collaboration platformCopyright © 2008-2019 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