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 emfstore.org
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)