Difference: ConflictPatterns (19 vs. 20)

Revision 202018-09-16 - PaolaAccioly

Line: 1 to 1
 
META TOPICPARENT name="GenteAreaPublications"

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

Changed:
<
<
Normalized Conflict Results Here
>
>
Normalized Conflict Results Here
 

Data

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

Conflict Patterns collected

Changed:
<
<
Normalized 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

META FORM name="MyForm"
FORM FIELD 29 Jan. 29Jan. EMN/ARMINES, ULANC, UMA, FCT/UNL
FORM FIELD 12 Feb. 12Feb. HOLOS, EMN/ARMINES
FORM FIELD 26 Feb. 26Feb.
META FILEATTACHMENT attachment="LineBasedMCFd.png" attr="" comment="" date="1418327851" name="LineBasedMCFd.png" path="LineBasedMCFd.png" size="71026" user="PaolaAccioly" version="1"
META FILEATTACHMENT attachment="SameSignatureCM.png" attr="" comment="" date="1418330611" name="SameSignatureCM.png" path="SameSignatureCM.png" size="99941" user="PaolaAccioly" version="1"
META FILEATTACHMENT attachment="SameIdFd.png" attr="" comment="" date="1418331149" name="SameIdFd.png" path="SameIdFd.png" size="52538" user="PaolaAccioly" version="1"
META FILEATTACHMENT attachment="ModifierList.png" attr="" comment="" date="1418331452" name="ModifierList.png" path="ModifierList.png" size="36203" user="PaolaAccioly" version="1"
META FILEATTACHMENT attachment="ImplementList.png" attr="" comment="" date="1418331869" name="ImplementList.png" path="ImplementList.png" size="61331" user="PaolaAccioly" version="1"
META FILEATTACHMENT attachment="DefaultValueAnnotation.png" attr="" comment="" date="1418332926" name="DefaultValueAnnotation.png" path="DefaultValueAnnotation.png" size="94774" user="PaolaAccioly" version="1"
META FILEATTACHMENT attachment="PID3558029.pdf" attr="" comment="" date="1428406798" name="PID3558029.pdf" path="PID3558029.pdf" size="91874" user="PaolaAccioly" version="1"
META FILEATTACHMENT attachment="prga_icse_src.pdf" attr="" comment="" date="1430959095" name="prga_icse_src.pdf" path="prga_icse_src.pdf" size="87612" user="PaolaAccioly" version="1"
META FILEATTACHMENT attachment="EditSameFd.png" attr="" comment="" date="1440952034" name="EditSameFd.png" path="EditSameFd.png" size="53125" user="PaolaAccioly" version="1"
META FILEATTACHMENT attachment="ExtendsLits.png" attr="" comment="" date="1440952052" name="ExtendsLits.png" path="ExtendsLits.png" size="64937" user="PaolaAccioly" version="1"
META FILEATTACHMENT attachment="conflictResults.html" attr="" comment="" date="1476897535" name="conflictResults.html" path="conflictResults.html" size="83613" user="PaolaAccioly" version="1"
META FILEATTACHMENT attachment="ese.pdf" attr="" comment="" date="1514300355" name="ese.pdf" path="ese.pdf" size="852276" user="PaolaAccioly" version="1"
 
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