Sparx Systems Forum
Enterprise Architect => General Board => Topic started by: Wowbagger on August 26, 2009, 07:02:48 am
-
Since EA doesn't understand GIT, and that's how we store things, I am trying to see if I can make it work manually I'd appreciate any help anyone can give.
What I am doing is:
1) Create model in EA.
2) Export package(s) to a working directory as XMI.
3) add those packages to the Git repository.
4) Other architects then check out that directory from the repo.
5) Other architects import the XMI files into EA.
6) Other architects modify the models.
7) Other architects export the models back to the XMI files.
8) Other architects commit their files to GIT.
9) I pull their changes from the GIT repo into the XMI files
10) I import the XMI back into my EA model.
Lather, rise repeat.
However, things blow up at step 9 when I have local changes and they have changes: due to the way the XMI files are written Git is unable to resolve and merge the changes, and I am left with an XMI file full have conflicts.
My questions are:
1) Is there a better way to get EA to play nice with GIT?
2) If not, is there a better way to export the models to make merging easier?
3) If not, is there a better way to have EA handle merging the XMI files?
-
Have you already considered the Compare utility in EA, where you can compare an external XMI file with the equivalent package (or model)?
Look for Diff Utility in the product Help index.
-
As long as you go with the exclusive checkout you should be fine (no need to merge things)
The Compare utility in EA works fine, but it still requires a lot of manual work sifting to the myriads of changes.
You might want to look into the controlled packages feature. That is a feature in EA wich allows to to control package in xmi files, but without an integration with a VC package.
I'm guessing that a combination of the controlled packages and manually checking in/out those xmi files could give you a workable workaround.
(we used to have a similar setup using rational rose long ago, but of course that tool used files as storage, not a database)
If that would not be enough locking the packages using the security feature might also help. (if you are using a shared model that is)
Geert
-
As long as you go with the exclusive checkout you should be fine (no need to merge things)
The bad thing is that I have reasons to have multiple people working on the elements within the project, which is why I am using a distributed VCS (git).
The Compare utility in EA works fine, but it still requires a lot of manual work sifting to the myriads of changes.
I'll look into that.
You might want to look into the controlled packages feature.
That is what I am doing: each sub-section of the project is a controlled XMI file.
The problem seems to be that when the XMI files are regenerated from the package, the XMI file is being changed in ways above and beyond the actual changes in the model: in other words, if Programmer A adds a requirement, and Programmer B adds a use case, rather than the XMI files being changed only to the extent needed to represent those changes, the files are being changed all over the place, preventing GIT from being able to merge what ought to be two orthogonal changes.