Peter Harman
deltatheta UK Ltd., UK
Download articlehttp://dx.doi.org/10.3384/ecp11063650Published 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
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.
[1] Modelica; http://www.modelica.org
[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; http://git-scm.com
[5] O’Sullivan; B.; Distributed revision control with Mercurial; Mercurial Project 2007
[6] TortoiseSVN; http://tortoisesvn.org
[7] Visual Studio; http://www.microsoft.com/visualstudio/
[8] Eclipse; http://eclipse.org
[9] Netbeans; http://netbeans.org
[10] Trac; http://trac.edgewall.org
[11] Modelica Association Trac Instance; http://trac.modelica.org
[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; http://www.deltatheta.com/products/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