Detecting Conflicts with Semistructured Merge in Version Control Systems: A Replicated Experiment

Guilherme Cavalcanti, Paola Accioly, and Paulo Borba.

Abstract:

When working in a collaborative development environment, developers often implement tasks in an independent way, with poorly defined interfaces. Consequently, during integration of the code contributions resulting from each task, one likely has to deal with conflicting changes and dedicate substantial effort for merging contributions. To reduce such effort, unstructured merge tools try to automatically solve part of the conflicts via textual similarity. Structured and semistructured merge tools try to go further by exploiting the syntactic structure of the artifacts involved, this way they reduce spurious conflicts due to changes, for example, in the order of commutative and associative declarations. To collect evidence of the benefits and drawbacks of different merging approaches, Apel et al. have studied 180 merge scenarios from 24 projects stored in a Centralized Version Control Systems (CVCS), and they show evidence that semistructured merge reduces the number of conflicts in 60% of the sample merge scenarios, when for these scenarios, the reduction on the number of conflict is, on average, of 34\%. Aiming at increasing the existing body of evidence, and assessing results for systems developed under an alternative version control approach, in this paper we replicate this experiment with 3266 merge scenarios from 60 projects that use a Distributed Version Control System (DVCS). And similar to the previous study, we observed that semistructured merge reduces the number of conflicts in 55\% of the scenarios of the new sample. However, the observed average conflict reduction of 62% in these scenarios is far superior than what has been observed before.

Replication Design

The study design is composed by a mining step, which is different from the original study since we are exploring DVCS repositories instead of CVCS ones; and by a execution step, which is similar to the original study, since we use the tool and scripts provided by the original authors. In particular, in the mining step, we built tools that mine DVCS repositories to collect a number of merge scenarios. Subsequently, in the execution step, we use a prototype of the semistructured approach in order to run the selected merge scenarios using both merge approaches, and R scripts, to collect metrics on the number of textual conflicts, conflicting lines of code, conflicting files and semantic conflicts.

figprocedure.png

Data, Scripts and Tools

-- GuilhermeCavalcanti - 2015-04-17

MyForm
29 Jan.

12 Feb.

26 Feb.

Edit | Attach | Print version | History: r6 | r4 < r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r1 - 2015-04-17 - GuilhermeCavalcanti
 
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