2

I thought about putting a Sparx Enterprise Architect UML model in our SVN repository. The .eap project file is a large binary and that's why not suitable, but I can export/import via XMI 2.1 file format to manage the model as text file.

2 questions:

  1. Is the XMI-approach a good idea for developing the UML model in a team, based on SVN source control?
  2. I noticed every export to XMI file completely changes all ea_localid attribute values in all the XML tags, and this seems to make it impossible for me letting the sharing base on XMI, since it'll result in a huge disturbing diff. Any idea?
falkb
  • 1,294
  • 11
  • 35
  • Note: I had to do this important trick before SVN worked for me: https://groups.google.com/forum/#!topic/sparx-enterprise-architect-general/S2YjOAT_u2E – falkb Oct 23 '15 at 10:31
  • Possible duplicate of [Centralized repository in DBMS or SVN](http://stackoverflow.com/questions/12215300/centralized-repository-in-dbms-or-svn) – Uffe Oct 26 '15 at 09:29
  • The first part of this question is a duplicate of http://stackoverflow.com/questions/12215300/centralized-repository-in-dbms-or-svn. The second part should be its own question. – Uffe Oct 26 '15 at 09:29

1 Answers1

2

You simply can put packages under svn version control. Do that will lock all packages for exclusive use. So only one person can check out a package and make changes to it until checking it in again.

From my personal experience I would not recommend that path unless you have a distributed system with bad WLAN. In that case the use of EA with version control is a solution.

Generally you should put your repository on a server (MS SQL, MySQL, Postgres, Oracle, etc. whatever is supported natively by EA or via ODBC). Then turn on EA security (which is a misleading name since it does not help in any way with security, just with accidental deletion prevention). Then set Require User Lock to Edit on and you are in a save harbor. If you need to change something you need to lock it and when done you simply give back the lock. In contrast to that VC will not only use the central lock but also replace complete model parts with the checked out XMI. This is slow and can lead to undesired side effects (hard to explain but just believe me, I've been hurt more than once).

What you can do is to run a nightly script to export the model (or single packages) to XMI and put those exports under version control. That way you have VC without running in the troubles you would have with direct VC. Trust me, the check-in comments are useless in 99% of all cases so a nightly snapshot is more than enough.

qwerty_so
  • 35,448
  • 8
  • 62
  • 86
  • It's sad to hear EA has not improved the version control approach over so many years. For instance, the famous library Qt saves its GUI description files (.ui) also in XML format, and merging concurrent changes on those files works pretty well via SVN, and without the need of locks. I setup SVN control of my EA model branch and was quite upset as it immediately leads to many single commits for each package, and our automatic build server ran the whole night... :-( Why not one commit??? I don't get it, it makes it usable for me. Your answer gains that insight, thanks! – falkb Oct 23 '15 at 06:31
  • Well, the marketing department of Sparx obviously took over at about version 6. Since then the development only put in feature after feature without fixing bugs or improving basic functionality. Life is bad :-( – qwerty_so Oct 23 '15 at 08:50