Version Control for models

This information has been consolidated and moved to the portal’s page about Version control tools FOR modeling artifacts. Follow the discussion there

Programmers could NOT live without version control systems LIKE Subversion OR Git. However, modelers have been forced TO live LIKE that until now.

We don´t have yet the version control FOR models but SOME promising initiatives have recently been popping up. Probably the most visible example IS the new Eclipse EMF Store project, recently approved. EMF Store IS a model repository that keeps track OF the version history OF the models stored IN it. EMFStore follows the checkout/UPDATE/COMMIT interaction paradigm known FROM SVN OR CVS AND offers an interactive model merging interface TO resolve conflicts WHEN two users change the same model DATA. A model migration (TO UPDATE models after changes ON the metamodel they conform TO) feature IS also integrated. The code IS currently hosted ON Google code AT

Other interesting projects IN the same area ARE:

  • The ModelCVS AND AMOR (Adaptable Model Versioning) projects that provide semantic-based methods AND techniques TO leverage version control (LIKE learning FROM previous conflict resolution decisions made by the USER OR proposing resolution strategies based ON the semantics OF the concepts TO be merged).The live demos I´ve seen OF these tools were really impressive.
  • EMF Compare that implements a two-phase comparison technique FOR EMF models WHERE the FIRST step (matching) browses the model versions figuring out the relationships BETWEEN the elements IN the “new” AND “old” version AND the SECOND one (differencing) browses the matching result TO CREATE the list OF differences.
  • Epsilon Merging LANGUAGE , a rule-based LANGUAGE FOR merging homogeneous OR heterogeneous models. The correspondences BETWEEN the models TO be merged can be generated USING the related Epsilon Comparison LANGUAGE .

Note that ALL these tools ONLY version the model information but NOT its graphical representation (e.g. layout). It´s NOT yet clear what should be considered a change OR conflict IN this context (e.g. moving a class two inches TO RIGHT should COUNT AS a change? Does this conflict WITH another “change” IN which the class has moved a little BIT down?).

OF course, if you prefer TO WORK WITH textual modeling tools (AND follow a purely syntactic approach FOR model comparison) THEN the problem disappears AND standard version control tools would do the trick.

FOR the readers interested IN the latest research area, the complete Bibliography ON Comparison AND Versioning OF Software Models contains links TO (ALL?) publications IN the area, including several workshops specialized IN model comparison AND versioning.

AS always, ANY pointer TO other similar projects that I may have missed will be highly appreciated (I´m thinking about projects that offer a generic version control FOR models, I know that several tools offer this feature FOR models specifically created WITH that same tool)

If you enjoyed this post you can subscribe TO this Software Modeling blog , TO the portal’s mailing list , follow me on twitter and/or check the most popular posts . And if you really liked it help me pass it on to others by bookmarking and sharing the post using the links below:

6 Responses to Version Control for models

  1. Anonymous says:

    Including UML models and diagrams, layer diagrams, and DGML (dependency) graphs:

    Managing Models and Graphs Under Version Control

  2. Anonymous says:

    The ModelBus project also addresses model versioning:
    The focus IS a BIT different though. It IS also about tool integration AND distributed services that can be run ON models.

  3. Geert Bellekens says:

    In Enterprise Architect you can integrate with the most common version control systems.
    The built-in compare utility does a reasonably good job at tracking additions, deletions and changes.
    You can see both the changes to the model, as the changes to the diagrams, although comparing diagrams is not really easy as the tool doesn’t provide graphical comparison.

  4. Anonymous says:


    I just want to add that ABSE, being based on well-defined units called “Atoms”, can have a much more granular support for model versioning: Each Atom has its own version (an ABSE model is made up of [dozens|hundreds|thousands] of Atoms). This works similarly to SVN.

    However, this is not yet available on the current public implementation of ABSE (1.0) on AtomWeaver.

    But you can add ABSE to the “promising initiatives that have recently been popping up” list regarding version control of models…

  5. Anonymous says:

    Hi Jordi,

    A colleague of mine has been working in his dissertation on MORSE — a model-aware repository — that also supports model versioning.


  6. Anonymous says:


    I would like to add the metamodel repository that we are working on within the Modelum research group of the University of Murcia.

    It is called MetaRep and supports fine-grained version control of models and metamodels and a homogeneous architecture that allows both models and metamodels to be treated uniformly, as explained in this paper:

    We are currently developing a prototype that will be released soon.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Powered by WordPress
More in modeling, tools
Top 5 posts August 2010
EMF Facet (a UML profile-like mechanism for EMF?)
Which modeling language do you use for MDE (survey results)