Conference article

Effective Version Control of Modelica Models

Peter Harman
deltatheta UK Ltd., UK

Download article

Published in: Proceedings of the 8th International Modelica Conference; March 20th-22nd; Technical Univeristy; Dresden; Germany

Linköping Electronic Conference Proceedings 63:72, p. 650-656

Show more +

Published: 2011-06-30

ISBN: 978-91-7393-096-3

ISSN: 1650-3686 (print), 1650-3740 (online)


This contribution introduces Converge; a specialized Version Control System client application designed purely for Modelica. Conventional VCS clients and diff tools cannot inform the user what the effect of a single edit has on the model as a whole. Converge compares selected revisions of a model; loading the Modelica code directly from the VCS repository. This paper presents examples of Modelica code where an edit that appears significant in a conventional diff tool can be shown as not so; and an edit that appears insignificant in a conventional diff tool actually has significant changes to the resulting model.

Successfully comparing two revisions of a model requires resolving the types of components; including handling inheritance; imports and redeclarations. It requires handling of equations and component values; and flattening of the model structure.

Converge includes a complete Modelica implementation; and presents the VCS repository to the user with a number of views; including Packages; Inheritance; Dependencies; Annotations; and Components views; and Instance and Equations views that compare the instantiated model. Changes; and whether they affect the model results; are highlighted to the user. This will allow users to understand the development of models over time and to solve problems caused by changes in dependent Modelica libraries.


Software configuration management; ver-sion control; model lifecycle management


[1] Modelica;

[2] Collins-Sussman; B.; The Subversion Project: Building a Better CVS; Linux Journal; Volume 2002 Issue 94; February 2002

[3] Morse; T.; CVS; Linux Journal; Volume 1996 Issue 21; Jan. 1996

[4] GIT - Fast Version Control System;

[5] O’Sullivan; B.; Distributed revision control with Mercurial; Mercurial Project 2007

[6] TortoiseSVN;

[7] Visual Studio;

[8] Eclipse;

[9] Netbeans;

[10] Trac;

[11] Modelica Association Trac Instance;

[12] Christen; E.; Bakalar; K.; VHDL-AMS; a hardware description language for analog and mixed-signal applications; Circuits and Systems II: Analog and Digital Signal Processing; Volume 26 Issue 10; 1999

[13] Converge;

[14] Harman P.; Tiller M. Building Modelica Tools using the Modelica SDK; Modelica 2009

[15] Modelica Language Specification; Version 3.2; Modelica Association 2010

Citations in Crossref