Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
Understanding Merge Conflicts Characteristics (Website under construction)Abstract | ||||||||
Line: 23 to 23 | ||||||||
Conflict Pattern Results Here | ||||||||
Changed: | ||||||||
< < | Normalized Conflict Results Here | |||||||
> > | Normalized Conflict Results Here | |||||||
Data | ||||||||
Line: 31 to 31 | ||||||||
Conflict Patterns collected | ||||||||
Changed: | ||||||||
< < | Normalized Patterns collected | |||||||
> > | Normalized Patterns collected | |||||||
Tools |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
Understanding Merge Conflicts Characteristics (Website under construction)Abstract | ||||||||
Line: 14 to 14 | ||||||||
Guilherme Cavalcanti - gjcc at cin.ufpe.br
Paper | ||||||||
Changed: | ||||||||
< < | Link to our paper | |||||||
> > | Link to our paper | |||||||
Added: | ||||||||
> > | 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 | ||||||||
Line: 117 to 120 | ||||||||
| ||||||||
Changed: | ||||||||
< < |
| |||||||
> > |
|
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
Understanding Merge Conflicts Characteristics (Website under construction)Abstract | ||||||||
Line: 12 to 12 | ||||||||
Paulo Borba - phmb at cin.ufpe.br Guilherme Cavalcanti - gjcc at cin.ufpe.br | ||||||||
Added: | ||||||||
> > | PaperLink to our paper | |||||||
Results -- Graphs and Tables (HTML generated by our R scripts) | ||||||||
Line: 114 to 117 | ||||||||
| ||||||||
Added: | ||||||||
> > |
|
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
Understanding Merge Conflicts Characteristics (Website under construction)Abstract | ||||||||
Line: 15 to 15 | ||||||||
Results -- Graphs and Tables (HTML generated by our R scripts) | ||||||||
Changed: | ||||||||
< < | Conflict Pattern Results Here | |||||||
> > | Conflict Pattern Results Here | |||||||
Normalized Conflict Results Here | ||||||||
Line: 113 to 113 | ||||||||
| ||||||||
Added: | ||||||||
> > |
|
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
Understanding Merge Conflicts Characteristics (Website under construction)Abstract | ||||||||
Line: 25 to 25 | ||||||||
Conflict Patterns collected | ||||||||
Changed: | ||||||||
< < | [[https://dl.dropboxusercontent.com/u/10804483/normalization/projectsChanges.csv[Normalized Patterns collected]] | |||||||
> > | Normalized Patterns collected | |||||||
Tools |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
Understanding Merge Conflicts Characteristics (Website under construction)Abstract |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
Understanding Merge Conflicts Characteristics (Website under construction)Abstract | ||||||||
Line: 15 to 15 | ||||||||
Results -- Graphs and Tables (HTML generated by our R scripts) | ||||||||
Changed: | ||||||||
< < | Updated Results Here | |||||||
> > | Conflict Pattern Results Here Normalized Conflict Results Here | |||||||
DataAll data we collected during our experiment is available in what follows. | ||||||||
Changed: | ||||||||
< < | Results collected | |||||||
> > | Conflict Patterns collected
[[https://dl.dropboxusercontent.com/u/10804483/normalization/projectsChanges.csv[Normalized Patterns collected]] | |||||||
Tools |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
Understanding Merge Conflicts Characteristics (Website under construction)Abstract | ||||||||
Line: 21 to 21 | ||||||||
All data we collected during our experiment is available in what follows. | ||||||||
Changed: | ||||||||
< < | Results collected | |||||||
> > | Results collected | |||||||
Tools |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
Understanding Merge Conflicts Characteristics (Website under construction)Abstract | ||||||||
Line: 13 to 13 | ||||||||
Guilherme Cavalcanti - gjcc at cin.ufpe.br | ||||||||
Changed: | ||||||||
< < | Results -- Graphs and Tables | |||||||
> > | Results -- Graphs and Tables (HTML generated by our R scripts) | |||||||
Updated Results Here |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
Understanding Merge Conflicts Characteristics (Website under construction)Abstract | ||||||||
Line: 25 to 25 | ||||||||
Tools | ||||||||
Changed: | ||||||||
< < | The tools used to run our experiment, including the mining and the execution step is available here. | |||||||
> > | The tools used to run our experiment, including the mining and the execution step are available here. | |||||||
Sample Systems |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
Understanding Merge Conflicts Characteristics (Website under construction)Abstract | ||||||||
Line: 27 to 27 | ||||||||
The tools used to run our experiment, including the mining and the execution step is available here. | ||||||||
Added: | ||||||||
> > | Sample SystemsDescription of our sample | |||||||
The Conflict Pattern CatalogBellow you can see one example of an instance of each pattern. |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
Understanding Merge Conflicts Characteristics (Website under construction) | ||||||||
Added: | ||||||||
> > | 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. | ||||||||
Line: 12 to 13 | ||||||||
Guilherme Cavalcanti - gjcc at cin.ufpe.br | ||||||||
Changed: | ||||||||
< < | Update Results Link | |||||||
> > | Results -- Graphs and Tables | |||||||
Updated Results Here | ||||||||
Added: | ||||||||
> > | DataAll data we collected during our experiment is available in what follows. Results collectedToolsThe tools used to run our experiment, including the mining and the execution step is available here. | |||||||
The Conflict Pattern CatalogBellow you can see one example of an instance of each pattern. | ||||||||
Line: 40 to 51 | ||||||||
Example: | ||||||||
Changed: | ||||||||
< < | ![]() | |||||||
> > | ![]() | |||||||
Field declarations added with the same identifiers and different types of modifiersAcronym: AddSameFd | ||||||||
Line: 69 to 80 | ||||||||
Example: | ||||||||
Changed: | ||||||||
< < | ![]() | |||||||
> > | ![]() | |||||||
Different edits to the same annotation method default valueAcronym: DefaultValueA | ||||||||
Line: 78 to 89 | ||||||||
![]() | ||||||||
Changed: | ||||||||
< < | ToolsThe source code for our tools is available here. | |||||||
> > | Sample systems | |||||||
|
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Changed: | ||||||||
< < | Understanding Conflicts Arising from Collaborative Development (Website under construction) | |||||||
> > | Understanding Merge Conflicts Characteristics (Website under construction) | |||||||
Changed: | ||||||||
< < | When working in a collaborative development environment, developers implement different tasks in an independent way. Consequently, during the integration process, one might have to deal with conflicting changes. Previous studies indicate that conflicts occur frequently and impair developers’ productivity. Such evidence motivates the development of tools to avoid, detect and solve conflicts. However, despite the existing evidence about this problem, there are still questions left unanswered that could drive up the productivity of existing tools. The goals of this PhD research work is to investigate conflict characteristics through empirical studies and propose improved ways to better support software developers working collaboratively. In this webpage you will find all the description of our conflict pattern catalog, the tools used in the study and our updated results. | |||||||
> > | 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. | |||||||
Changed: | ||||||||
< < | Paper Preprint If you have any questions please contact me: | |||||||
> > | If you have any questions please contact: | |||||||
Paola Accioly - prga at cin.ufpe.br | ||||||||
Changed: | ||||||||
< < | Results | |||||||
> > | Paulo Borba - phmb at cin.ufpe.br
Guilherme Cavalcanti - gjcc at cin.ufpe.br
Update Results Link | |||||||
Updated Results Here
The Conflict Pattern CatalogBellow you can see one example of an instance of each pattern. | ||||||||
Changed: | ||||||||
< < | Pattern 1Title: Make different edits (including removal) to the same area of the same method, constructor or field declaration. | |||||||
> > | Different edits to the same area of the same method or constructor | |||||||
Changed: | ||||||||
< < | Acronym: LineBasedMCFd | |||||||
> > | Acronym: EditSameMC | |||||||
Example:
![]() | ||||||||
Changed: | ||||||||
< < | Pattern 2Title: Add methods or constructors declarations with the same signature and different bodies. | |||||||
> > | Methods or constructors added with the same signature and different bodies | |||||||
Acronym: SameSignatureCM
Example:
![]() | ||||||||
Changed: | ||||||||
< < | Pattern 3 | |||||||
> > | Different edits to the same field declarationAcronym: EditSameFd Example: | |||||||
Changed: | ||||||||
< < | Title: Add field declarations with the same id and different types or modifiers. | |||||||
> > | ![]() Field declarations added with the same identifiers and different types of modifiers | |||||||
Changed: | ||||||||
< < | Acronym: SameIdFd | |||||||
> > | Acronym: AddSameFd | |||||||
Example:
![]() | ||||||||
Changed: | ||||||||
< < | Pattern 4Title: Make different edits (including removal) to the modifiers list of the same type declaration (class, interface, annotation or enum types). | |||||||
> > | Different edits to the modifier list of the same type declaration (class, interface, annotation or enum types) | |||||||
Acronym: ModifierList
Example:
![]() | ||||||||
Changed: | ||||||||
< < | Pattern 5Title: Make different edits (including removal) to the same list of implements declaration. | |||||||
> > | Different edits to the same implements declaration | |||||||
Changed: | ||||||||
< < | Acronym: ImplementList | |||||||
> > | Acronym: ImplementsList | |||||||
Example:
![]() | ||||||||
Changed: | ||||||||
< < | Pattern 6 | |||||||
> > | Different edits to the same extends declaration | |||||||
Changed: | ||||||||
< < | Title: Make different edits (including removal) to the default value of the same annotation method declaration. | |||||||
> > | Acronym: ExtendsList Example: | |||||||
Changed: | ||||||||
< < | Acronym: DefaultValueAnnotation | |||||||
> > | ![]() Different edits to the same annotation method default valueAcronym: DefaultValueA | |||||||
Example: | ||||||||
Line: 76 to 80 | ||||||||
Tools | ||||||||
Changed: | ||||||||
< < | The source code for our tools is available here. We are currently working on a set of instructions to install and run our environment.
| |||||||
> > | The source code for our tools is available here. | |||||||
| ||||||||
Line: 94 to 94 | ||||||||
| ||||||||
Added: | ||||||||
> > |
|
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
Understanding Conflicts Arising from Collaborative Development (Website under construction)When working in a collaborative development environment, developers implement different tasks in an independent way. Consequently, during the integration process, one might have to deal with conflicting changes. Previous studies indicate that conflicts occur frequently and impair developers’ productivity. Such evidence motivates the development of tools to avoid, detect and solve conflicts. However, despite the existing evidence about this problem, there are still questions left unanswered that could drive up the productivity of existing tools. The goals of this PhD research work is to investigate conflict characteristics through empirical studies and propose improved ways to better support software developers working collaboratively. In this webpage you will find all the description of our conflict pattern catalog, the tools used in the study and our updated results. | ||||||||
Changed: | ||||||||
< < | Paper Preprint | |||||||
> > | Paper Preprint | |||||||
If you have any questions please contact me: | ||||||||
Line: 93 to 93 | ||||||||
| ||||||||
Added: | ||||||||
> > |
|
Line: 1 to 1 | |||||||||
---|---|---|---|---|---|---|---|---|---|
Understanding Conflicts Arising from Collaborative Development (Website under construction)When working in a collaborative development environment, developers implement different tasks in an independent way. Consequently, during the integration process, one might have to deal with conflicting changes. Previous studies indicate that conflicts occur frequently and impair developers’ productivity. Such evidence motivates the development of tools to avoid, detect and solve conflicts. However, despite the existing evidence about this problem, there are still questions left unanswered that could drive up the productivity of existing tools. The goals of this PhD research work is to investigate conflict characteristics through empirical studies and propose improved ways to better support software developers working collaboratively. In this webpage you will find all the description of our conflict pattern catalog, the tools used in the study and our updated results. | |||||||||
Added: | |||||||||
> > | Paper Preprint | ||||||||
If you have any questions please contact me: Paola Accioly - prga at cin.ufpe.br | |||||||||
Line: 78 to 80 | |||||||||
| |||||||||
Added: | |||||||||
> > |
| ||||||||
| |||||||||
Line: 88 to 92 | |||||||||
| |||||||||
Added: | |||||||||
> > |
|
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
Understanding Conflicts Arising from Collaborative Development (Website under construction) | ||||||||
Line: 8 to 8 | ||||||||
Paola Accioly - prga at cin.ufpe.br | ||||||||
Added: | ||||||||
> > | ResultsUpdated Results Here | |||||||
The Conflict Pattern CatalogBellow you can see one example of an instance of each pattern. | ||||||||
Line: 71 to 75 | ||||||||
ToolsThe source code for our tools is available here. We are currently working on a set of instructions to install and run our environment. | ||||||||
Deleted: | ||||||||
< < | Results | |||||||
Deleted: | ||||||||
< < | Updated Results | |||||||
|
Line: 1 to 1 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||
Changed: | |||||||||||||
< < | Understanding Conflicts Arising from Collaborative Development (Website under construction) | ||||||||||||
> > | Understanding Conflicts Arising from Collaborative Development (Website under construction) | ||||||||||||
When working in a collaborative development environment, developers implement different tasks in an independent way. Consequently, during the integration process, one might have to deal with conflicting changes. Previous studies indicate that conflicts occur frequently and impair developers’ productivity. Such evidence motivates the development of tools to avoid, detect and solve conflicts. However, despite the existing evidence about this problem, there are still questions left unanswered that could drive up the productivity of existing tools. The goals of this PhD research work is to investigate conflict characteristics through empirical studies and propose improved ways to better support software developers working collaboratively. In this webpage you will find all the description of our conflict pattern catalog, the tools used in the study and our updated results. | |||||||||||||
Changed: | |||||||||||||
< < | The Conflict Pattern Catalog
| ||||||||||||
> > |
If you have any questions please contact me:
Paola Accioly - prga at cin.ufpe.br
The Conflict Pattern Catalog | ||||||||||||
Bellow you can see one example of an instance of each pattern. | |||||||||||||
Added: | |||||||||||||
> > | Pattern 1Title: Make different edits (including removal) to the same area of the same method, constructor or field declaration. Acronym: LineBasedMCFd Example:![]() Pattern 2Title: Add methods or constructors declarations with the same signature and different bodies. Acronym: SameSignatureCM Example:![]() Pattern 3Title: Add field declarations with the same id and different types or modifiers. Acronym: SameIdFd Example:![]() Pattern 4Title: Make different edits (including removal) to the modifiers list of the same type declaration (class, interface, annotation or enum types). Acronym: ModifierList Example:![]() Pattern 5Title: Make different edits (including removal) to the same list of implements declaration. Acronym: ImplementList Example:![]() Pattern 6Title: Make different edits (including removal) to the default value of the same annotation method declaration. Acronym: DefaultValueAnnotation Example:![]() Tools | ||||||||||||
Changed: | |||||||||||||
< < | Results | ||||||||||||
> > | The source code for our tools is available here. We are currently working on a set of instructions to install and run our environment.
Results | ||||||||||||
Updated Results | |||||||||||||
Added: | |||||||||||||
> > | |||||||||||||
| |||||||||||||
Added: | |||||||||||||
> > |
|
Line: 1 to 1 | |||||||||
---|---|---|---|---|---|---|---|---|---|
Understanding Conflicts Arising from Collaborative Development (Website under construction) | |||||||||
Line: 12 to 12 | |||||||||
| |||||||||
Added: | |||||||||
> > | ResultsUpdated Results | ||||||||
|
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Changed: | ||||||||
< < | Website under construction | |||||||
> > | Understanding Conflicts Arising from Collaborative Development (Website under construction)When working in a collaborative development environment, developers implement different tasks in an independent way. Consequently, during the integration process, one might have to deal with conflicting changes. Previous studies indicate that conflicts occur frequently and impair developers’ productivity. Such evidence motivates the development of tools to avoid, detect and solve conflicts. However, despite the existing evidence about this problem, there are still questions left unanswered that could drive up the productivity of existing tools. The goals of this PhD research work is to investigate conflict characteristics through empirical studies and propose improved ways to better support software developers working collaboratively. In this webpage you will find all the description of our conflict pattern catalog, the tools used in the study and our updated results.The Conflict Pattern Catalog
| |||||||
|