

This work focuses on the latter, specifically on EMF models persisted in the standard XMI format and versioned in Git repositories. While there are several model storage solutions for model versioning and persistence, it is also common (if not the norm) to find models stored in mainstream file-based VCSs alongside related source code.
Diffmerge 3.3 software#
In model-driven software development, models become additional software artefacts to manage during their evolution.
Diffmerge 3.3 code#
As a conflict example, when the same line of code has been modified in different ways by two branches, the VCS does not know which line version should be selected, so a conflict is raised for the developer to resolve. In this type of VCSs merge operations take place at a file-line level, by performing a three-way comparison between the two branches being merged and their common ancestor in the version tree. This work focuses on file-based VCS, such as Git or Subversion. Nevertheless, concurrent work can cause conflicts to appear when merging two branches where incompatible changes have been made. Version control systems (VCSs) make concurrent work possible, by allowing developers to work on different versions or branches of the codebase. Software development is usually a collaborative endeavour, and it is frequent to find several developers working on different aspects of the same software system at the same time. there is no loss of model information, and the resulting models after line-merging these conflicts conform to their metamodels. The small subset of non-identified conflicts does not introduce issues into the models, e.g.

Compared with state-of-the-art model comparison tools with support for conflict resolution, Peacemaker is able to identify the vast majority of conflicts in models while reducing the required time by up to 60%. We have implemented this approach in the Peacemaker tool, which can load XMI models with conflict sections, compute and display conflicts at the model level, and provide appropriate resolution actions. We present a novel approach that prevents this repetition of work by directly parsing XMI-based models with conflict sections, which allows for a targeted analysis of only the lines of the model that have been detected to be in conflict by the version control system.

Diffmerge 3.3 full#
While these conflict sections already mark the conflicting lines of the model, current tools for conflict resolution in models ignore them and instead load the different versions of a model from the repository, over which they perform a full and costly comparison that re-identifies the conflicts. When these conflicts happen in XMI models, the conflict sections generated by diff programs break the XMI serialisation and compromise the ability to use model editors that assume well-formedness of this serialisation. Conflicts in software artefacts can appear during collaborative development through version control systems.
