2
votes

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?
1
Note: I had to do this important trick before SVN worked for me: groups.google.com/forum/#!topic/…falkb
Possible duplicate of Centralized repository in DBMS or SVNUffe
The first part of this question is a duplicate of stackoverflow.com/questions/12215300/…. The second part should be its own question.Uffe

1 Answers

2
votes

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.